我正在做一个练习,我必须从键盘输入一个字符串。该字符串将是简单的算术运算,例如“2 + 4 + 6 - 8 + 3 - 7”。是的,格式必须是这样的。之间的单个空格。
这个想法是获取这个字符串并最终打印出它的答案。到目前为止,这是我的代码:
public class AddemUp {
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
System.out.print("Enter something like 8 + 33 + 1345 + 137: ");
String s = kb.nextLine();
Scanner sc = new Scanner(s);
sc.useDelimiter("\\s*\\+\\s*|\\s*\\-\\s*");
int sum = 0;
int theInt;
Scanner sc1 = new Scanner(s);
sc1.useDelimiter("\\s*\\s*");
String plusOrMinus = sc1.next();
int count = 0;
if(s.startsWith("-"))
{
sum -= sc.nextInt();
}
while(sc.hasNextInt())
{
theInt = sc.nextInt();
if(count == 0)
{
sum += theInt;
}
else if(plusOrMinus.equals("+"))
{
sum += theInt;
}
else
{
sum -= theInt;
}
sc1.next();
count++;
}
System.out.println("Sum is: " + sum);
}
}
}
在“sc1.delimiter”所在的第 25 行,我不知道如何让代码跳过所有整数(以及空格)并仅隔离“+”或“-”。一旦实现了这一点,我可以简单地将其实现到 while 循环中。