日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java中没有scanner_如何使用java.util.Scanner验证输入?

發布時間:2023/12/19 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java中没有scanner_如何使用java.util.Scanner验证输入? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

小編典典

示例1:驗證正整數

這是一個hasNextInt()用于int從輸入中驗證肯定的簡單示例。

Scanner sc = new Scanner(System.in);

int number;

do {

System.out.println("Please enter a positive number!");

while (!sc.hasNextInt()) {

System.out.println("That's not a number!");

sc.next(); // this is important!

}

number = sc.nextInt();

} while (number <= 0);

System.out.println("Thank you! Got " + number);

結果:

Please enter a positive number!

five

That's not a number!

-3

Please enter a positive number!

5

Thank you! Got 5

請注意Scanner.hasNextInt(),與更詳細try/catch Integer.parseInt/ NumberFormatException組合相比,使用起來要容易得多。通過合同,一個Scanner 保證,如果它hasNextInt(),然后nextInt()將安靜地給你int,并不會引發任何NumberFormatException/ InputMismatchException/ NoSuchElementException。

示例2:hasNextXXX同一令牌上有多個

請注意,上面的代碼段包含一個sc.next()語句,以使Scanner直到它前進hasNextInt()。重要的是要意識到,沒有一種 hasNextXXX 方法可以 Scanner 超越任何輸入!你會發現,如果你從代碼段中省略了這一行,那么它將在無效輸入上陷入無限循環!

這有兩個結果:

如果你需要跳過“垃圾”輸入失敗的hasNextXXX測試,那么你需要提前Scanner一個這樣或那樣的(例如next(),nextLine(),skip等)。

如果一項hasNextXXX測試失敗,你仍然可以進行測試hasNextYYY!

這是執行多個hasNextXXX測試的示例。

Scanner sc = new Scanner(System.in);

while (!sc.hasNext("exit")) {

System.out.println(

sc.hasNextInt() ? "(int) " + sc.nextInt() :

sc.hasNextLong() ? "(long) " + sc.nextLong() :

sc.hasNextDouble() ? "(double) " + sc.nextDouble() :

sc.hasNextBoolean() ? "(boolean) " + sc.nextBoolean() :

"(String) " + sc.next()

);

}

輸出結果:

5

(int) 5

false

(boolean) false

blah

(String) blah

1.1

(double) 1.1

100000000000

(long) 100000000000

exit

請注意,測試順序很重要。如果是Scanner hasNextInt(),那么它也是hasNextLong(),但不一定true是相反的方式。通常,你想在進行更通用的測試之前先進行更具體的測試。

示例3:驗證元音

Scanner具有正則表達式支持的許多高級功能。這是一個使用它來驗證元音的示例。

Scanner sc = new Scanner(System.in);

System.out.println("Please enter a vowel, lowercase!");

while (!sc.hasNext("[aeiou]")) {

System.out.println("That's not a vowel!");

sc.next();

}

String vowel = sc.next();

System.out.println("Thank you! Got " + vowel);

輸出結果:

Please enter a vowel, lowercase!

5

That's not a vowel!

z

That's not a vowel!

e

Thank you! Got e

2020-01-10

總結

以上是生活随笔為你收集整理的java中没有scanner_如何使用java.util.Scanner验证输入?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。