gpt4 book ai didi

java - 为什么我的代码无法识别输入?

转载 作者:行者123 更新时间:2023-11-30 07:51:29 25 4
gpt4 key购买 nike

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

我目前正在获取

输入表达式:3+3

然后它给了我空间来输入另外两个这样的输入,这是不应该允许的3_#3&3

Exception in thread "main" java.lang.NumberFormatException: For input string: "3+3"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.valueOf(Integer.java:766)
at Calculator.main(Calculator.java:13)

----jGRAS

在给我这个错误之前^^^我怎样才能让它识别输入运算符并转到calculator1方法并处理基本算术?

提前感谢您的任何建议。这是我的代码:

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

最佳答案

问题是您试图在 Stringchar 之间进行比较。你正在做:

if("+".equals(c))
....

应该是:

if('+' == c)
....

另外,尝试使用 Integer.parseInt() 代替,如下所示:

 int a = (Integer.parseInt(d));

最后,您无法parseInt“请检查您的表达。”这样的完整句子。 Integer.parseInt 应该解析字符串以查找匹配的数值。

因此,如果您要执行 Integer.parseInt("5"),它将返回 int 5

看起来你的程序只是想打印出结果。如果是这种情况,我会将您的 calculator1 方法的返回类型从 int 更改为 void 并删除 return failure; 在最后。

关于java - 为什么我的代码无法识别输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33294478/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com