簡體   English   中英

Java Scanner輸入僅接受數字

[英]Java Scanner input accepting only numbers

我正在嘗試在這里創建這個小程序,但我無法使其正常工作。 我有2個主要的雙打( prvidrugi ),我想確定如果將雙打轉換為字符串(以太坊prvi或drugi)包含任何字母或符號來打印一些文本,如果兩個雙打都包含數字,那么我在那做我的代碼

這是我嘗試過的:

    Scanner sk = new Scanner(System.in);
        double prvi, drugi;

        System.out.println("Insert num: ");
        prvi = sk.nextDouble();

        System.out.println("Insert 2nd num: ");
        drugi = sk.nextDouble();

        String prviStr = String.valueOf(prvi);
        String drugiStr = String.valueOf(drugi);

        System.out.println("====================");

        if (prviStr.matches("[a-zA-Z]+") || drugiStr.matches("[a-zA-Z]+"))
            System.out.println("Only numbers!");

        else if (prviStr.matches("[0-9]+") && drugiStr.matches("[0-9]+")) {
            // I do my code here if both inputs are numbers 
         }

當使用nextDouble() ,您要求掃描程序對象僅接受有效的Double輸入。 如果要接受字符串,只需使用next() 如下所示更改行。

System.out.println("Insert num: ");
prvi = sk.next();

System.out.println("Insert 2nd num: ");
drugi = sk.next();

如果sk返回一個異常,則用try-catch括住語句,並輸出一條錯誤消息(如果您輸入其他內容,則輸入double值)。 您不再需要將其轉換為字符串或使用正則表達式。

    Scanner sk = new Scanner(System.in);
    double prvi=0, drugi=0;

    try{
        System.out.println("Insert num: ");
        prvi = sk.nextDouble();

        System.out.println("Insert 2nd num: ");
        drugi = sk.nextDouble();
    }catch(Exception e){
        System.out.println("Only numbers!");
    }
    // Your code here

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM