Включить плюс или минус в сумму программы - PullRequest
0 голосов
/ 25 апреля 2020

Это программа, которая запрашивает пользовательский ввод (число) и печатает оператор сумм. Который постоянно работает, пока пользователь не войдет в 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 = "";  
}   
}
}

1 Ответ

0 голосов
/ 25 апреля 2020

Это может быть потому, что \\d+ забирает одно или несколько номеров. Принимая во внимание, что - перед отрицательным числом не считается числом, поэтому оно не соответствует вашему регулярному выражению.

Попробуйте использовать что-то вроде:

-?\\d+

...