簡體   English   中英

將掃描儀的下一個字符串轉換為Int並檢查輸入的文本是否為數字

[英]Convert Scanner next string to Int and check that the text entered is a number

我正在嘗試將Scanner的下一個字符串轉換為Int,並檢查輸入的文本是否為數字,如果不是數字系統打印,則不是數字,但如果是數字,則將其轉換為int並除以十。

如果我不檢查代碼中的條件,則代碼按預期運行。 但是,如果輸入了文本,它將計算字符索引值。

如果存在該條件,則它將對每個數字進行計算,而不是在進行計算之前對數字求和,但不會計算其他字符索引值。

不檢查條件:

    Scanner inputtext = new Scanner(System.in); 

    System.out.print("Mata in ett tal: ");
    String number =    inputtext.next();  //Här matar användaren in text.              
    int sum = 0;
    double number2 = 10.0;

    for (int i=0; i < number.length(); i++) { //Här omvandlas texten till tal.

    sum *= 10;
    sum += (int) number.charAt(i)-(int)'0'; 
    }   

    System.out.println("Resultat: " + sum); //Här matas talet ut.
    System.out.println("Resultat delat med 10 : " + (sum/number2)); //Här divideras talet med 10.


  }

}

檢查時:

    Scanner inputtext = new Scanner(System.in); 

    System.out.print("Mata in ett tal: ");
    String number =    inputtext.next();  //Här matar användaren in text.              
    int sum = 0;
    double number2 = 10.0;

    for (int i=0; i < number.length(); i++) { //Här omvandlas texten till tal.
    char ch = number.charAt(i);

    if (ch == '0' || ch == '1' || ch == '2' || ch == '3' || ch == '4' ||  ch == '5' || ch == '6'|| ch == '7'|| ch == '8'|| ch == '9'){ 
    sum *= 10;
    sum += (int) number.charAt(i)-(int)'0';

    } else { 
    System.out.println("Detta är inte ett tal");
    break; 
    }
    System.out.println("Resultat: " + sum); //Här matas talet ut.
    System.out.println("Resultat delat med 10 : " + (sum/number2)); //Här divideras talet med 10.            
   }

}

}

我希望如果輸入的字符串包含數字,則將執行計算;如果添加了其他字符,則將告知用戶這不是數字

您可以使用Character中的方法:

  • 字符是數字
  • 字符是字母
  • Character.isLetterOrDigit

通過使用它,遍歷字符串並測試所有字符是否都是數字。

另外,請記住,“ // d”代表一個數字,因此,如果您只想掃描一個數字,則可以使用該數字。 我知道這並不能說明太多,但我認為提醒可能會有所幫助。

暫無
暫無

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

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