我正在开发一个简单的计算 我的输入3 + 3
我可以用空格(3 + 3)来做,但是如果没有像(3 + 3)这样的空格我怎么办呢!
这是我的最后一段代码我知道这是错的,但我还在学习!
package calcPkg;
import java.util.Scanner;
import java.util.StringTokenizer;
public class test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String myString = input.nextLine();
String DELIM = "+";
double dblNum1 = 0;
double dblNum2 = 0;
double dblResult = 0;
StringTokenizer st = new StringTokenizer(myString, DELIM, true);
dblNum1 = Double.parseDouble(st.nextToken());
//dblNum2 = Double.parseDouble(st.nextToken());
dblNum2 = 2;
dblResult = dblNum1 + dblNum2;
while (st.hasMoreTokens())
System.out.println(st.nextToken());
System.out.println("First Number:" + dblNum1);
System.out.println("Operation:" + DELIM);
System.out.println("Second Number:" + dblNum2);
System.out.println("Result:" + dblResult);
}
}
答案 0 :(得分:1)
我猜你的问题是处理空格,你不需要StringTokenizer给你返回' +'所以你不需要第三个参数StringTokenizer,一旦你获得了你的标记,你可以使用trim()函数来修剪空格
public class Test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String myString = input.nextLine();
String DELIM = "+";
StringTokenizer st = new StringTokenizer(myString, DELIM);
double dblNum1 = Double.parseDouble(st.nextToken().trim());
double dblNum2 = Double.parseDouble(st.nextToken().trim());
double dblResult = dblNum1 + dblNum2;
System.out.println("First Number:" + dblNum1);
System.out.println("Operation:" + DELIM);
System.out.println("Second Number:" + dblNum2);
System.out.println("Result:" + dblResult);
}
}
我为你写了一个附加部分,但是我猜你的期望写完整的+, - ,*,/算术计算器,所以你可以根据你在这里看到的那样完成,但DELIM会被分配在java中使用条件,if或switch语句,所以你应该查看它们。
答案 1 :(得分:0)
我遇到了同样的问题并使用脚本引擎解决了它。
通过检查输入的变量是否有效等,确保您的应用程序处理恶意脚本......