[英]java How to read 2 different datatypes in one line using a Scanner
我需要使用掃描儀,其中第一個單詞是字符串,第二個單詞是雙精度詞,例如“Drive 5”,但兩者都需要寫入掃描儀的同一行
Scanner scanner = new Scanner(System.in); String befehl = scanner.nextLine(); double wert = scanner.nextDouble();
使用Scanner#next
然后Scanner#nextDouble
。
String befehl = scanner.next();
double wert = scanner.nextDouble();
有時我認為人們錯過了Scanner
的意義和力量。
使用您的第一個Scanner
讀取用戶的下一行輸入,然后使用另一個Scanner
獨立地執行該輸入的解析/驗證。
這具有確保輸入Scanner
保持清潔和最新的額外好處(並避免所有那些“我的掃描儀正在跳過輸入”問題)並隔離解析輸入的責任。
例如...
Scanner scanner = new Scanner(System.in);
String text = scanner.nextLine();
Scanner parser = new Scanner(text);
if (parser.hasNext()) {
String leadingText = parser.next();
if (parser.hasNextDouble()) {
double value = parser.nextDouble();
} else {
System.out.println("Invalid input, expecting a double value");
}
} else {
System.out.println("Inavlid input, expecting text");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.