[英]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中的方法:
通過使用它,遍歷字符串並測試所有字符是否都是數字。
另外,請記住,“ // d”代表一個數字,因此,如果您只想掃描一個數字,則可以使用該數字。 我知道這並不能說明太多,但我認為提醒可能會有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.