Java 为什么我的代码不是';t识别输入?

Java 为什么我的代码不是';t识别输入?,java,Java,我希望此代码能够识别用户输入,例如:2+3 并将其设置为5 或者如果用户输入4*3给我12 如何修改代码 我目前正在 输入表达式:3+3 然后它给了我空间,让我再输入两个这样的输入,这是不允许的 3_# 3和3 ----jGRAS 在给我那个错误之前^^^ 我怎样才能让它识别输入运算符并转到计算器1方法并处理基本算法 提前感谢您的建议。 这是我的密码: import java.util.Scanner; class Calculator { public static void ma

我希望此代码能够识别用户输入,例如:
2+3
并将其设置为
5
或者如果用户输入
4*3
给我
12
如何修改代码

我目前正在

输入表达式:
3+3

然后它给了我空间,让我再输入两个这样的输入,这是不允许的 3_# 3和3

----jGRAS

在给我那个错误之前^^^ 我怎样才能让它识别输入运算符并转到计算器1方法并处理基本算法

提前感谢您的建议。 这是我的密码:

import java.util.Scanner;

class Calculator {
     public static void main(String[] args) {      


         Scanner kb = new Scanner(System.in);

         System.out.print("Enter expression: ");   
         String d = kb.next();
         String f = kb.next();
         String e = kb.next();
         int a = (Integer.valueOf(d));
         int b = (Integer.valueOf(e));
         char c = f.charAt(0);
         calculator1(a, b, c);


     }
     public static int calculator1(int a, int b, char c)  {

         int fault = Integer.parseInt("Please Check Your Expression.");

         if("+".equals(c)) 
             System.out.print(a+b);
         else if ("-".equals(c)) 
             System.out.print(a-b);
         else if ("*".equals(c))  
             System.out.print(a*b);
         else if ("/".equals(c)) 
             System.out.print(a/b);
         return fault;
     }
}

问题是您试图比较
字符串
字符
。你正在做:

if("+".equals(c))
    ....
应该是:

if('+' == c)
    ....
另外,请尝试使用
Integer.parseInt()
,如下所示:

 int a = (Integer.parseInt(d));
最后,你不能像“请检查你的表达式”这样完整的句子
Integer.parseInt
应该解析字符串以找到匹配的数值

因此,如果执行
Integer.parseInt(“5”)
,它将返回
int
5


看起来您的程序只是试图打印结果。如果是这种情况,我会将您的
calculator1
方法的返回类型从
int
更改为
void
,并删除
返回错误在结尾。

有一个更好的方法来实现这一点

使用JDK1.6,您可以使用内置Javascript引擎将字符串转换为数学表达式并计算值。看看下面的示例,您可以将从用户处获得的字符串值传递给类似的内容

import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
import java.util.Scanner;

public class Test {

    public static void main(String[] args) throws Exception {

        System.out.println("Welcome to my calculator. Enter quit to exit");

        while(true) {

            Scanner input = new Scanner(System.in);
            System.out.print("Enter a mathematical expression: ");
            String expression = input.next();

            if(expression.equals("quit")) {

                System.out.println("Thank you for using my calculator. Good bye!"); 
                System.exit(0);
            }

            ScriptEngineManager mgr = new ScriptEngineManager();
            ScriptEngine engine = mgr.getEngineByName("JavaScript");
            System.out.println("Solution is : " + engine.eval(expression));
        }
    }
}

Integer.parseInt(“请检查您的表达式”)都将失败。。。您必须发送一个整数的字符串表示,它才能工作。。。比如
Integer.parseInt(“50”)哦,好的,关于如何返回字符串,你有什么建议吗?我尝试了多种方法,但无法在return语句中执行任何操作。不能从返回类型为
int
的方法返回
字符串。。。你的运气不好:(…我的建议是打印方法中的字符串并返回默认的int值,或者你必须重新设计方法…我的答案无效吗?
import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
import java.util.Scanner;

public class Test {

    public static void main(String[] args) throws Exception {

        System.out.println("Welcome to my calculator. Enter quit to exit");

        while(true) {

            Scanner input = new Scanner(System.in);
            System.out.print("Enter a mathematical expression: ");
            String expression = input.next();

            if(expression.equals("quit")) {

                System.out.println("Thank you for using my calculator. Good bye!"); 
                System.exit(0);
            }

            ScriptEngineManager mgr = new ScriptEngineManager();
            ScriptEngine engine = mgr.getEngineByName("JavaScript");
            System.out.println("Solution is : " + engine.eval(expression));
        }
    }
}