【发布时间】:2013-12-10 18:54:15
【问题描述】:
我觉得我已经尝试了所有东西,搜索了所有我知道要搜索的东西,并且我已经为此工作了大约 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);
}
}
根据我在 StackOverflow 上发现的其他问题,更好的方法是使用索引,但我在本章中为我设置了一个使用字符串和扫描仪的 shell 程序。
我在这里缺少什么?我误解/完全不理解什么?
【问题讨论】:
标签: java java.util.scanner delimiter