Java 是否可以为小数点创建if-then语句?
我有一个分数计算器GUI,我需要一个条件,它只接受整数,并在用户输入数字时输入小数点时输出错误消息 这是我的GUI 以下是我的GUI代码: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
@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()将捕获输入中的所有此类问题。