Эта программа принимает строку и добавляет все целые числа в ней, я установил разделитель как «+», окруженный любым количеством пробелов. Он отлично работает с этим, но теперь я хочу, чтобы он работал с любыми отрицательными целыми числами, например, если я вводил «8 + 33 + 1,345 - 37»; выход равен 41. Он даже не доходит до 1,345 или вычитает -37 из общей суммы. Разграничители «пропущены»? Например, я был бы прав, если бы сказал, что компилятор переходит на 8, а затем «+» пропущен, тогда он переходит на 33? И если я , установите разделитель как «\ s * \ + | - \ s *» (попытка + или -), выход по-прежнему 41, почему?Добавление и вычитание чисел из строки
import java.util.*;
import java.io.*;
public class Add_em_up
{
public static void main (String args [])
{
Scanner x = new Scanner (System.in);
System.out.print("Enter something like 8 + 33 + 1,345 + 137 :");
String s = x.nextLine();
Scanner sc1 = new Scanner (s);
sc1.useDelimiter("\\s*\\+\\s*");
int sum = 0;
while (sc1.hasNextInt())
{
sc1.skip(",*");
if (sc1.hasNextInt())
{
sum = sum + sc1.nextInt();
}
}
System.out.println("Sum is: " + sum);
}
}
'sc1.split (" \\ s * [- +] \\ s * "); ' –
Это работает, спасибо, но почему мы должны удалить« \\ »и почему он не работает с + | - не« | » означает или тоже? – Limbo
'' 'не относится к плюсу и минусу. Он занимает всю часть слева и всю часть справа. –