我正在做一個練習,我需要接受字串變數中的數字并將它們除以 10,并且不允許使用 .nextInt();或 Integer.ParseInt(); 如果 String 變數包含字母,我想列印出一條錯誤訊息。現在,如果我只在字串變數中輸入字母,則錯誤訊息有效,但如果我將其與字母和數字混合,則錯誤訊息不起作用。我能做些什么來解決這個問題。
到目前為止的代碼:
匯入 java.util.regex.*;
匯入 java.util.Scanner;
公開課練習8 {
private static Scanner input;
public static void main(String[] args) {
System.out.println("Enter some numbers");
input = new Scanner(System.in);
double divide = 10;
int sum = 0;
int x = 0;
int j = 0;
while (x < 1) {
String strNumbers = input.next();
if (!Pattern.matches("[a-zA-Z] ", strNumbers)) {
x;
for (int i = strNumbers.length() - 1; i >= 0; i--) {
sum = Math.pow(10, j) * (strNumbers.charAt(i) - '0');
j ;
}
System.out.println("Your numbers: " sum);
System.out.println("Your numbers divided by 10: " sum/divide);
}
else {
System.out.println("Invalid");
}
}
}
}
uj5u.com熱心網友回復:
您可以反轉 if 陳述句并檢查strNumbers變數是否僅包含數字。
if (Pattern.matches("\\d ", strNumbers)) {
//handle case where number is valid ...
}
else {
System.out.println("Invalid");
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/362725.html
上一篇:文本為“空”
