我的代码有问题。我认为问题在于delims=[+,-,*,/]+
。当我为前写if (delims.equals("[+]+"))
时,它只需要[+]。但是delims不等于[+]。我想你明白我的意思。 delims等于[+,-,*,/]+.
public static void main(String[] args) {
System.out.println("Please enter your calculation");
Scanner sc = new Scanner(System.in);
String s=sc.next();
String delims="[+,-,*,/]+";
String[] tokens=s.split(delims);
for(int i=0; i<1; i++){
String s1=tokens[i];
for (int j=1; j<2; j++){
String s2=tokens[j];
double n1=Double.parseDouble(s1);
double n2=Double.parseDouble(s2);
if (delims.equals("[+]+")){
System.out.println(n1+n2);
System.exit(0); }
if (delims.equals("[-]+")){
System.out.println(n1-n2);
System.exit(0);}
if (delims.equals("[*]+")){
System.out.println(n1*n2);
System.exit(0);}
if (delims.equals("[/]+")){
System.out.println(n1/n2);
System.exit(0);
}
}}}}
答案 0 :(得分:1)
分隔符被消耗(扔掉),但你需要它。
请改为尝试:
String[] tokens = s.replace(" ","").split("\\b");
\b
表示“单词边界”,数字被视为单词字符,因此当输入的数字部分为整数时,这将起作用。
我添加了对`replace'的调用以删除所有空格。