[英]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.