Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否可以为小数点创建if-then语句?_Java - Fatal编程技术网

Java 是否可以为小数点创建if-then语句?

Java 是否可以为小数点创建if-then语句?,java,Java,我有一个分数计算器GUI,我需要一个条件,它只接受整数,并在用户输入数字时输入小数点时输出错误消息 这是我的GUI 以下是我的GUI代码: @Override public void actionPerformed(ActionEvent e) { if (e.getSource() == this.computeButton){ try { Fraction f1 = new Fraction(Integer.parseInt(Num1.ge

我有一个分数计算器GUI,我需要一个条件,它只接受整数,并在用户输入数字时输入小数点时输出错误消息

这是我的GUI

以下是我的GUI代码:

@Override
public void actionPerformed(ActionEvent e) {

    if (e.getSource() == this.computeButton){
        try {
            Fraction f1 = new Fraction(Integer.parseInt(Num1.getText()), Integer.parseInt(Den1.getText()));
            Fraction mixed1 = new Fraction(Integer.parseInt(Mixed1.getText()),1);
            Fraction f2 = new Fraction(Integer.parseInt(Num2.getText()), Integer.parseInt(Den2.getText()));
            Fraction mixed2 = new Fraction(Integer.parseInt(Mixed2.getText()),1);
            Fraction ff1= f1.mul(mixed1);
            Fraction ff2 = f2.mul(mixed2);
            if (!Mixed1.getText().isEmpty())
                ff1.setWholeNumber(Integer.parseInt(Mixed1.getText()));
            if (!Mixed2.getText().isEmpty()){
                ff2.setWholeNumber(Integer.parseInt(Mixed2.getText()));
            }
            Fraction res;
            switch (comboBox1.getSelectedIndex()){
                case 0: //addition
                    res = ff1.add(ff2);

                    break;
                case 1://subtraction
                    res = ff1.sub(ff2);
                    break;
                case 2://multiplication
                    res = ff1.mul(ff2);
                    break;
                case 3://division
                    res = ff1.div(ff2);
                    break;

                default: res = new Fraction(1,1);
            }
            Label.setText(res.getResult());
            Decimal.setText(Double.toString(res.toDecimal()));
        }catch (Exception ex){
         ex.getMessage();
        }
    }
}

是否可以为这类问题创建一个方法?

这里有一个简单的方法来编写一个函数,验证字符串是否是有效的整数值:

boolean isValidInteger(String str) {
    try {
        Integer.parseInt(str);
    } catch (NumberFormatException ignore) {
        return false;
    }
    return true;
}

您还可以将错误处理合并到您自己的输入解析中,这样您就不需要调用Integer.parseInt()两次。

以下是一种简单的方法来编写验证字符串是否为有效整数值的函数:

boolean isValidInteger(String str) {
    try {
        Integer.parseInt(str);
    } catch (NumberFormatException ignore) {
        return false;
    }
    return true;
}

您还可以将错误处理合并到您自己的输入解析中,这样就不需要调用Integer.parseInt()两次。

如果用户输入小数点,是否要抛出错误?一个更好的用户界面将带来更好的用户体验,它只会阻止用户输入除数字以外的任何内容,可能还有符号

您可以通过设置一个确保值为有效整数的通孔来实现这一点


如果仍要检查某个值是否有小数点,可以通过尝试使用Integer.parseInt()(或Long.parseLong())对其进行解析,或者通过迭代字符并确保所有字符都是数字来轻松地进行检查,允许第一个字符作为符号。

如果用户输入小数点,是否引发错误?一个更好的用户界面将带来更好的用户体验,它只会阻止用户输入除数字以外的任何内容,可能还有符号

您可以通过设置一个确保值为有效整数的通孔来实现这一点


如果仍要检查某个值是否有小数点,可以通过尝试使用Integer.parseInt()(或Long.parseLong())对其进行解析,或者通过迭代字符并确保所有字符都是数字来轻松地进行检查,允许第一个字符作为符号。

您可以使用parseInt获得所需的结果。 JOptionPane可以显示输入的错误

JTextField txtField = new JTextField();
int displayValue;
String displayTextField = txtField.getText();
if(!"".equals(displayTextField ))
{
  try
  {
   displayValue = Integer.parseInt(displayTextField);
  }
  catch (NumberFormatException e)
  {
   javax.swing.JOptionPane.showConfirmDialog(null, "Wrong number, please enter Integer number", "Error", javax.swing.JOptionPane.PLAIN_MASSAGE);
   return;
  }
}

您可以使用parseInt获得所需的结果。 JOptionPane可以显示输入的错误

JTextField txtField = new JTextField();
int displayValue;
String displayTextField = txtField.getText();
if(!"".equals(displayTextField ))
{
  try
  {
   displayValue = Integer.parseInt(displayTextField);
  }
  catch (NumberFormatException e)
  {
   javax.swing.JOptionPane.showConfirmDialog(null, "Wrong number, please enter Integer number", "Error", javax.swing.JOptionPane.PLAIN_MASSAGE);
   return;
  }
}

如果尝试使用Integer.parseInt()解析带小数的数字,它将引发NumberFormatException异常。那么,为什么不尝试解析一个整数,捕获该异常,并在出现错误时通知用户他们输入了错误的输入呢?您可以将这样的调用封装在一个方法中,以创建一个“boolean-isValidInteger(String-str)”函数。您也可以专门查找十进制数,但使用Integer.parseInt()将捕获输入中的所有此类问题。如果尝试使用Integer.parseInt()解析带有十进制数的数字,则会引发NumberFormatException异常。那么,为什么不尝试解析一个整数,捕获该异常,并在出现错误时通知用户他们输入了错误的输入呢?您可以将这样的调用封装在一个方法中,以创建一个“boolean-isValidInteger(String-str)”函数。您也可以专门查找十进制数,但使用Integer.parseInt()将捕获输入中的所有此类问题。