创建一个名为parseEqn的方法,该方法将接收1个String变量并返回传递给它的表达式的double值。
parseEqn("123+23") → 146.0
parseEqn("3+5") → 8.0
parseEqn("3-5") → -2.0
这是我到目前为止所做的:
public double parseEqn(String str) {
StringTokenizer st = new StringTokenizer(str,"+-/*%",true);
String first = st.nextToken();
String op = st.nextToken();
String second = st.nextToken();
double ff = Double.parseDouble(first);
double ss = Double.parseDouble(second);
double answer;
if (op.equals("+")){
answer= ff+ss;}
else if (op.equals("-")){
answer= ff-ss;}
else if (op.equals("/")){
answer= ff/ss;}
else (op.equals("*")){
answer= ff*ss;}
return answer;
我一直收到错误语法错误,插入“AssignmentOperator ArrayInitializer”来完成ArrayInitializerAssignement .... 这是什么意思?
我需要对循环做什么才能使其正常工作?我可以手动输入说ff + ss,该方法将正常工作,但我似乎无法创建一个循环来检查字符串中的哪个运算符,然后传回答案。
注意:即时通讯非常紧张,非常感谢帮助。一个直截了当的答案/解释会非常有帮助......而不是那些超级模糊的“哦,它不难......”类型的东西......
答案 0 :(得分:1)
它的工作正常,只是很少的修改。
检查上一个条件。
else if(op.equals("*")){answer= ff*ss;}
并将double answer
初始化为0。
以防检查
import java.util.StringTokenizer;
public class Car {
public double parseEqn(String str) {
StringTokenizer st = new StringTokenizer(str,"+-/*%",true);
String first = st.nextToken();
String op = st.nextToken();
String second = st.nextToken();
double ff = Double.parseDouble(first);
double ss = Double.parseDouble(second);
double answer = 0;
if (op.equals("+")){
answer= ff+ss;}
else if (op.equals("-")){
answer= ff-ss;}
else if (op.equals("/")){
answer= ff/ss;}
else if(op.equals("*")){
answer= ff*ss;}
return answer;
}
public static void main(String args[]) {
Car c = new Car();
System.out.println(c.parseEqn("123+23"));
System.out.println(c.parseEqn("3+5"));
System.out.println(c.parseEqn("3-5"));
/* Output From Console
*
* 146.0
8.0
-2.0*/
}
}