Java 如果用户输入错误的数字数据,如何调用错误消息 do{ number=(字符串)JOptionPane.showInputDialog(null,“数量:”,“试用”,JOptionPane.QUESTION\u消息); 如果(匹配数(\\d+)){ 数量=整数.parseInt(数字); } //JOptionPane.showMessageDialog(null,“无效输入!\n\nMin=1\nMax=100”,“试用”,JOptionPane.ERROR\u消息); }而(数量100); showMessageDialog(null,数字);

Java 如果用户输入错误的数字数据,如何调用错误消息 do{ number=(字符串)JOptionPane.showInputDialog(null,“数量:”,“试用”,JOptionPane.QUESTION\u消息); 如果(匹配数(\\d+)){ 数量=整数.parseInt(数字); } //JOptionPane.showMessageDialog(null,“无效输入!\n\nMin=1\nMax=100”,“试用”,JOptionPane.ERROR\u消息); }而(数量100); showMessageDialog(null,数字);,java,swing,Java,Swing,如果我将错误消息放在if内部或外部,则如果用户输入正确的数据,则错误消息仍会出现如果输入与正则表达式不匹配,则要显示该消息。因此: do { number = (String)JOptionPane.showInputDialog(null,"Quantity : ","TRIAL",JOptionPane.QUESTION_MESSAGE); if(number.matches("\\d+")) { qty = Integer.parseInt(number);

如果我将错误消息放在if内部或外部,则如果用户输入正确的数据,则错误消息仍会出现

如果输入与正则表达式不匹配,则要显示该消息。因此:

do {
    number = (String)JOptionPane.showInputDialog(null,"Quantity : ","TRIAL",JOptionPane.QUESTION_MESSAGE);
    if(number.matches("\\d+")) {
        qty = Integer.parseInt(number);
    }
    //    JOptionPane.showMessageDialog(null,"Invalid input !\n\nMin = 1\nMax = 100","TRIAL",JOptionPane.ERROR_MESSAGE);
} while(qty < 1 || qty > 100);
JOptionPane.showMessageDialog(null,number);
需要做到这一点:

if(number.matches("\\d+")){
    qty = Integer.parseInt(number);
}
//    JOptionPane.showMessageDialog(null,"Invalid input !\n\nMin = 1\nMax = 100","TRIAL",JOptionPane.ERROR_MESSAGE);
现在您的意思是,如果它匹配OK,那么您将读取新值
qty
,但如果它不匹配,那么您将显示消息

您可以考虑另一种选择,即避免使用正则表达式,但只需尝试调用
parseInt()
,然后捕获无法转换时产生的
NumberFormatException


(如果可以解析数字,但给出的结果超出了1到100的有效范围,则还需要一些逻辑来显示错误。)

如果输入与正则表达式不匹配,则需要显示消息。因此:

do {
    number = (String)JOptionPane.showInputDialog(null,"Quantity : ","TRIAL",JOptionPane.QUESTION_MESSAGE);
    if(number.matches("\\d+")) {
        qty = Integer.parseInt(number);
    }
    //    JOptionPane.showMessageDialog(null,"Invalid input !\n\nMin = 1\nMax = 100","TRIAL",JOptionPane.ERROR_MESSAGE);
} while(qty < 1 || qty > 100);
JOptionPane.showMessageDialog(null,number);
需要做到这一点:

if(number.matches("\\d+")){
    qty = Integer.parseInt(number);
}
//    JOptionPane.showMessageDialog(null,"Invalid input !\n\nMin = 1\nMax = 100","TRIAL",JOptionPane.ERROR_MESSAGE);
现在您的意思是,如果它匹配OK,那么您将读取新值
qty
,但如果它不匹配,那么您将显示消息

您可以考虑另一种选择,即避免使用正则表达式,但只需尝试调用
parseInt()
,然后捕获无法转换时产生的
NumberFormatException


(如果可以解析数字,但给出的结果超出了1到100的有效范围,则还需要一些逻辑来显示错误。)

如果输入与正则表达式不匹配,则需要显示消息。因此:

do {
    number = (String)JOptionPane.showInputDialog(null,"Quantity : ","TRIAL",JOptionPane.QUESTION_MESSAGE);
    if(number.matches("\\d+")) {
        qty = Integer.parseInt(number);
    }
    //    JOptionPane.showMessageDialog(null,"Invalid input !\n\nMin = 1\nMax = 100","TRIAL",JOptionPane.ERROR_MESSAGE);
} while(qty < 1 || qty > 100);
JOptionPane.showMessageDialog(null,number);
需要做到这一点:

if(number.matches("\\d+")){
    qty = Integer.parseInt(number);
}
//    JOptionPane.showMessageDialog(null,"Invalid input !\n\nMin = 1\nMax = 100","TRIAL",JOptionPane.ERROR_MESSAGE);
现在您的意思是,如果它匹配OK,那么您将读取新值
qty
,但如果它不匹配,那么您将显示消息

您可以考虑另一种选择,即避免使用正则表达式,但只需尝试调用
parseInt()
,然后捕获无法转换时产生的
NumberFormatException


(如果可以解析数字,但给出的结果超出了1到100的有效范围,则还需要一些逻辑来显示错误。)

如果输入与正则表达式不匹配,则需要显示消息。因此:

do {
    number = (String)JOptionPane.showInputDialog(null,"Quantity : ","TRIAL",JOptionPane.QUESTION_MESSAGE);
    if(number.matches("\\d+")) {
        qty = Integer.parseInt(number);
    }
    //    JOptionPane.showMessageDialog(null,"Invalid input !\n\nMin = 1\nMax = 100","TRIAL",JOptionPane.ERROR_MESSAGE);
} while(qty < 1 || qty > 100);
JOptionPane.showMessageDialog(null,number);
需要做到这一点:

if(number.matches("\\d+")){
    qty = Integer.parseInt(number);
}
//    JOptionPane.showMessageDialog(null,"Invalid input !\n\nMin = 1\nMax = 100","TRIAL",JOptionPane.ERROR_MESSAGE);
现在您的意思是,如果它匹配OK,那么您将读取新值
qty
,但如果它不匹配,那么您将显示消息

您可以考虑另一种选择,即避免使用正则表达式,但只需尝试调用
parseInt()
,然后捕获无法转换时产生的
NumberFormatException


(如果可以解析数字,但给出的结果超出了1到100的有效范围,则还需要一些逻辑来显示错误。)

您可以将条件检查移动到循环中,并将循环更改为无限:

if(number.matches("\\d+")){
    qty = Integer.parseInt(number);
} else {
    JOptionPane.showMessageDialog(null,"Invalid input !\n\nMin = 1\nMax = 100","TRIAL",JOptionPane.ERROR_MESSAGE);
}
while(true){
number=(字符串)JOptionPane.showInputDialog(null,“数量:”,“试用”,JOptionPane.QUESTION\u消息);
如果(匹配数(“[1-9]\\d*”){
数量=整数.parseInt(数字);

如果(qty>=1&&qty,则可以将条件检查移动到循环中,并将循环更改为无限:

if(number.matches("\\d+")){
    qty = Integer.parseInt(number);
} else {
    JOptionPane.showMessageDialog(null,"Invalid input !\n\nMin = 1\nMax = 100","TRIAL",JOptionPane.ERROR_MESSAGE);
}
while(true){
number=(字符串)JOptionPane.showInputDialog(null,“数量:”,“试用”,JOptionPane.QUESTION\u消息);
如果(匹配数(“[1-9]\\d*”){
数量=整数.parseInt(数字);

如果(qty>=1&&qty,则可以将条件检查移动到循环中,并将循环更改为无限:

if(number.matches("\\d+")){
    qty = Integer.parseInt(number);
} else {
    JOptionPane.showMessageDialog(null,"Invalid input !\n\nMin = 1\nMax = 100","TRIAL",JOptionPane.ERROR_MESSAGE);
}
while(true){
number=(字符串)JOptionPane.showInputDialog(null,“数量:”,“试用”,JOptionPane.QUESTION\u消息);
如果(匹配数(“[1-9]\\d*”){
数量=整数.parseInt(数字);

如果(qty>=1&&qty,则可以将条件检查移动到循环中,并将循环更改为无限:

if(number.matches("\\d+")){
    qty = Integer.parseInt(number);
} else {
    JOptionPane.showMessageDialog(null,"Invalid input !\n\nMin = 1\nMax = 100","TRIAL",JOptionPane.ERROR_MESSAGE);
}
while(true){
number=(字符串)JOptionPane.showInputDialog(null,“数量:”,“试用”,JOptionPane.QUESTION\u消息);
如果(匹配数(“[1-9]\\d*”){
数量=整数.parseInt(数字);
如果(数量>=1&&qty
如果用户输入错误的数字数据,如何调用错误消息

相反,我建议为他们提供一个控件,使选择数字变得简单。具体来说,是一个带有微调器数字模型的微调器。如下所示:

while (true) {
    number = (String)JOptionPane.showInputDialog(null,"Quantity : ","TRIAL",JOptionPane.QUESTION_MESSAGE);
    if(number.matches("[1-9]\\d*")){
        qty = Integer.parseInt(number);

        if (qty >= 1 && qty <= 100) {
             break;
        }
    }

    JOptionPane.showMessageDialog(null, "Invalid input !\n\nMin = 1\nMax = 100", "TRIAL", JOptionPane.ERROR_MESSAGE);
}

JOptionPane.showMessageDialog(null,number);
import javax.swing.*;
公共类PickANumber{
公共静态void main(字符串[]args){
Runnable r=新的Runnable(){
@凌驾
公开募捐{
喷丝头型号喷丝头型号=
新喷丝头型号(0,0,100,1);
JSpinner spinner=新JSpinner(spinnerModel);
while(spinnerModel.getNumber().intValue())
如果用户输入错误的数字数据,如何调用错误消息

相反,我建议为他们提供一个控件,使选择数字变得简单。具体来说,是一个带有微调器数字模型的微调器。如下所示:

while (true) {
    number = (String)JOptionPane.showInputDialog(null,"Quantity : ","TRIAL",JOptionPane.QUESTION_MESSAGE);
    if(number.matches("[1-9]\\d*")){
        qty = Integer.parseInt(number);

        if (qty >= 1 && qty <= 100) {
             break;
        }
    }

    JOptionPane.showMessageDialog(null, "Invalid input !\n\nMin = 1\nMax = 100", "TRIAL", JOptionPane.ERROR_MESSAGE);
}

JOptionPane.showMessageDialog(null,number);
import javax.swing.*;
公共类PickANumber{
公共静态void main(字符串[]args){
Runnable r=新的Runnable(){
@凌驾
公开募捐{
喷丝头型号喷丝头型号=
新喷丝头型号(0,0,100,1);
JSpinner spinner=新JSpinner(spinnerModel);
while(spinnerModel.getNumber().intValue())
如果用户输入错误的数字数据,如何调用错误消息

相反,我建议为他们提供一个控件,使选择数字变得简单。具体来说,是一个带有微调器数字模型的微调器。如下所示:

while (true) {
    number = (String)JOptionPane.showInputDialog(null,"Quantity : ","TRIAL",JOptionPane.QUESTION_MESSAGE);
    if(number.matches("[1-9]\\d*")){
        qty = Integer.parseInt(number);

        if (qty >= 1 && qty <= 100) {
             break;
        }
    }

    JOptionPane.showMessageDialog(null, "Invalid input !\n\nMin = 1\nMax = 100", "TRIAL", JOptionPane.ERROR_MESSAGE);
}

JOptionPane.showMessageDialog(null,number);
import javax.swing.*;
公共类PickANumber{
公共静态无效