该程序接受一个字符串并将其中的所有整数相加,我已将分隔符设置为由任意数量的空格包围的“+”。 它正常工作,但现在我希望它与任何负整数,以及例如,如果我输入“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
'|'不适用于正负号。它把整个部分放在左边,整个部分放在右边。 –