繁体   English   中英

java 如何使用扫描仪在一行中读取 2 种不同的数据类型

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM