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));
}
}
}