gpt4 book ai didi

java - 我的计算器不能乘法或除法

转载 作者:行者123 更新时间:2023-12-02 04:20:08 26 4
gpt4 key购买 nike

我制作了一个不能乘法或除法的计算器并给我一个异常(exception):

java.lang.NumberFormatException: For input string: "*7"

正负号没有任何问题

class ActionListeners implements ActionListener {

@Override
public void actionPerformed(ActionEvent e) {
Object o = e.getSource();
int n1 = 0;
int n2 = 0;
int indexno = 0;
if (o == result) {

String s = t1.getText();

String s3 = "";
String s4 = "";
for (int b1 = 0; b1 < s.length(); ++b1) {
if (s.charAt(b1) == '+') {
indexno = s.indexOf('+');
s3 = s.substring(0, indexno);
s4 = s.substring(indexno);
n1 = Integer.parseInt(s3);
n2 = Integer.parseInt(s4);
JOptionPane.showMessageDialog(null, n1 + n2);
}
if (s.charAt(b1) == '-') {
indexno = s.indexOf('-');
s3 = s.substring(0, indexno);
s4 = s.substring(indexno);
n1 = Integer.parseInt(s3);
n2 = Integer.parseInt(s4);
JOptionPane.showMessageDialog(null, n1 + n2);
}
if (s.charAt(b1) == '*') {
indexno = s.indexOf('*');
s3 = s.substring(0, s.indexOf('*'));
s4 = s.substring(indexno);
n1 = Integer.parseInt(s3);
n2 = Integer.parseInt(s4);
JOptionPane.showMessageDialog(null, n1 * n2);
}
if (s.charAt(b1) == '/') {
indexno = s.indexOf('/');
s3 = s.substring(0, s.indexOf('/'));
s4 = s.substring(indexno);
n1 = Integer.parseInt(s3);
n2 = Integer.parseInt(s4);
JOptionPane.showMessageDialog(null, n1 / n2);
}
if (s.charAt(b1) == '/' && n2 == 0) {
JOptionPane.showMessageDialog(null, "Error : cant divide by zero");
}

}

t1.setText("");
}

最佳答案

- 起作用的唯一原因是 JOptionPane.showMessageDialog(null, n1 + n2);...请注意,您正在解析 中的一元负值>n2 然后添加两个值;如果你这样做了 JOptionPane.showMessageDialog(null, n1 - n2); 你也会在减法中看到一个错误。您需要在每个 if(s) 中使用 s4 = s.substring(indexno + 1);

关于java - 我的计算器不能乘法或除法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56641195/

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