这是一个要求用户输入(数字)并打印一个总和语句的程序。这个程序一直工作到用户输入END。它工作得很好,但是当输入一个负整数时,返回一个空的打印语句。任何关于如何在和中包含负整数的帮助或见解都将非常感激,谢谢您的时间。
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
int sum = 0;
String val = "";
while (val.equals(""))
{
System.out.print("Enter a number: ");
val = scan.nextLine();
if (val.equalsIgnoreCase("end")) {
break;
}
else if (val.matches("\\d+")) {
sum += Integer.parseInt(val);
System.out.println("Sum is now: " + sum);
}
else {
System.err.println("");
}
val = "";
}
}
}
这是因为 \\d+
捡到一个或多个数字。而 -
负数前的数字不被视为数字,因此它不符合您的regex。
试着使用类似这样的方法。
-?\\d+