java - 返回传递的字符串的 double 值

标签 java parsing return double

创建一个名为 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;
  1. 我不断收到错误语法错误,插入“AssignmentOperator ArrayInitializer”以完成 ArrayInitializerAssignement... 这是什么意思?

  2. 我需要对循环执行什么操作才能使其正常工作?我可以手动输入 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/

相关文章:

php - 不可能用 html 解析 facebook 公共(public)配置文件

java - 即使应该返回 false,循环也返回 true

sql - 从数据库文本字段中删除文本

java - 尝试将字符串从 Web 写入文件时出现 FileNotFoundException(权限)

java - 如何在 Java 中创建一个通用的占位符函数,将函数作为参数供以后使用?

java - Android mupdf java.lang.UnsatisfiedLinkError : dlopen failed: cannot locate symbol "atof"

java - 如何将 Python Script(py) 文件解析为 Java POJO?

java - 递归方法返回并打印 String 的 Int 数

javascript - 为什么我的函数返回一个只有一个元素的数组?

java - 我无法使用 IEDriver 在 IE11 Windows 10 中找到 xpath