我觉得我已经试过了所有的东西,搜索了我知道要搜索的所有东西,而现在我一直在为此进行6个课程的研究。加号和减号
我试图让一个程序接受像“6 + 6 -3 + 2”这样的字符串输入,并且可以添加/删除所有内容以输出正确的答案。我一次可以使用加法或减法(不能做任何事情,比如“6 + 6-3”),并且在任何数字之间总是必须有一个空格。它也不能添加多位数字,但一旦它可以正确添加/减少,我会担心它。所以我不认为我明白Scanner
和分隔符是如何工作的(因为这是本章的内容),但我似乎无法找到任何网上的东西,这有助于我理解我做错了什么。
这是我到目前为止有:
package addEmUp;
import java.util.*;
public class TesterShell {
public static void main(String[] args){
Scanner kbIn = new Scanner(System.in);
System.out.print("Enter some addition/subtraction problem: ");
String s = kbIn.nextLine();
Scanner numChecker = new Scanner(s);
Scanner valueChecker = new Scanner(s);
numChecker.useDelimiter("\\s*\\+\\s*|\\s*\\-\\s*");
int sum = 0;
while(numChecker.hasNext()){
if(valueChecker.next().equals("-")){
sum = sum - numChecker.nextInt();
}
else{
sum = sum + numChecker.nextInt();
}
System.out.println(sum); //Just for checking what's going on, will remove in the end
}
System.out.println("Sum = " + sum);
}
}
基于我在计算器上,更好的方法来做到这一点是使用索引中找到的其他问题,但我在章用一个使用字符串和扫描器的shell程序设置我。
我在这里错过了什么?我误解/不理解的是什么?
看到这个职位:http://stackoverflow.com/questions/4589951/parsing-an-arithmetic-expression-and-building-a树中的树或这一个:http://stackoverflow.com/questions/1432245/java-parse-a-mathematical-expression-given-as-a-string-and-returna-a-数字 –