如果 String 变量包含数字,我想打印一条错误消息
I want to print a error message if a String variable contains numbers
我正在做一个练习,我需要接受字符串变量中的数字并将它们除以 10,并且我不允许使用 .nextInt();或 Integer.ParseInt();如果 String 变量包含字母,我想打印出一条错误消息。现在,如果我只在字符串变量中输入字母,错误消息就会起作用,但如果我将它与字母和数字混合,错误消息就不起作用。我该怎么做才能解决这个问题。
到目前为止的代码:
导入java.util.regex.*;
导入java.util.Scanner;
public class 练习 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");
}
}
}
}
您可以反转 if 语句并检查 strNumbers
变量是否仅包含数字。
if (Pattern.matches("\d+", strNumbers)) {
//handle case where number is valid ...
}
else {
System.out.println("Invalid");
}
我正在做一个练习,我需要接受字符串变量中的数字并将它们除以 10,并且我不允许使用 .nextInt();或 Integer.ParseInt();如果 String 变量包含字母,我想打印出一条错误消息。现在,如果我只在字符串变量中输入字母,错误消息就会起作用,但如果我将它与字母和数字混合,错误消息就不起作用。我该怎么做才能解决这个问题。
到目前为止的代码:
导入java.util.regex.*;
导入java.util.Scanner;
public class 练习 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");
}
}
}
}
您可以反转 if 语句并检查 strNumbers
变量是否仅包含数字。
if (Pattern.matches("\d+", strNumbers)) {
//handle case where number is valid ...
}
else {
System.out.println("Invalid");
}