创建一个名为 parseEqn 的方法,它将接收 1 个字符串变量并返回传递给它的表达式的 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 ,该方法将正常工作,但我似乎无法创建一个循环来检查字符串中的哪个运算符,然后将答案传回。
注意:我时间紧迫,非常感谢您的帮助。一个直接的答案/解释会非常有帮助...而不是那些 super 模糊的“哦,这不难...”之类的事情...
最佳答案
只需稍加修改即可正常工作。
检查最后的条件。
else if(op.equals("*")){answer= ff*ss;}
并将双重答案
初始化为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*/
}
}
关于java - 返回传递的字符串的 double 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21310175/