簡體   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