当前位置: 首页 > 知识库问答 >
问题:

检查showInputDialog中的字符串是否为空

蒋乐意
2023-03-14

我之前有一个关于相同代码的问题,但原因不同。我不想让这个问题变得太混乱。以下是参考链接:使用JOPtionPane遇到麻烦

我希望检查用户是否没有在showInputDialog中输入任何内容,或者显示一个备用消息,并将他们带回原始提示,或者只是循环通过同一个对话框,直到他们正常关闭它或通过输入一个数字继续。

public static void main(String[] args) 
{  
String initialAmt_Str, targetAmt_Str, interestPct_Str, years_Str, result;
double principle = 0, target = 0, interest = 0;
int again = JOptionPane.NO_OPTION, time = 0;

NumberFormat fmt = NumberFormat.getCurrencyInstance();

do {  
     Object[] options = {"Compute years to reach target amount",
        "Compute target amount given number of years"};

     int choice = JOptionPane.showOptionDialog(null, "Please choose what you would like to do.",
            "Investment Advisor", JOptionPane.YES_NO_OPTION,
            JOptionPane.PLAIN_MESSAGE, null, options, null);

     if (choice != JOptionPane.CANCEL_OPTION) 
     {

        if (choice == 1) 
        {        
           initialAmt_Str = JOptionPane.showInputDialog (null, "Enter the principle:", "Investment Advisor", 
           JOptionPane.PLAIN_MESSAGE);

           if (initialAmt_Str != null) 
              principle = Double.parseDouble(initialAmt_Str);

下面是我试图检查空字符串的地方

           else {
              if (initialAmt_Str.isEmpty()){
              while (initialAmt_Str.isEmpty()) {
             initialAmt_Str = JOptionPane.showInputDialog (null, "Enter the principle:", "Investment Advisor", 
           JOptionPane.PLAIN_MESSAGE);}}

              if (initialAmt_Str != null) 
                 principle = Double.parseDouble(initialAmt_Str);

              else
                 System.exit(0);}

末端试验段

interestPct_Str = JOptionPane.showInputDialog (null, "Enter the interest rate as a"
                        + " percentage (without the percent sign):", "Investment Advisor", JOptionPane.PLAIN_MESSAGE); 

           if (interestPct_Str != null && !interestPct_Str.isEmpty()) 
              interest = Double.parseDouble(interestPct_Str);

           else 
              System.exit(0); 

           years_Str = JOptionPane.showInputDialog (null, "Enter the amount of years:", "Investment Advisor", 
           JOptionPane.PLAIN_MESSAGE);

           if (years_Str != null && !years_Str.isEmpty()) 
              time = Integer.parseInt(years_Str);

           else 
              System.exit(0);  

           result = "Your target amount given the number of years is " + 
              fmt.format(investment2(principle, interest, time)) + ".";

           JOptionPane.showMessageDialog (null, result, "Investment Advisor", JOptionPane.PLAIN_MESSAGE);

           again = JOptionPane.YES_OPTION;
        }
     }

     else 
        again = JOptionPane.NO_OPTION;


     if (choice == 0) 
     {
        initialAmt_Str = JOptionPane.showInputDialog (null,"Enter the principle:","Investment Advisor",
        JOptionPane.PLAIN_MESSAGE);

        if (initialAmt_Str != null && !initialAmt_Str.isEmpty()) 
           principle = Double.parseDouble(initialAmt_Str);

        else 
           System.exit(0);


        interestPct_Str = JOptionPane.showInputDialog (null, "Enter the interest rate as a"
                        + " percentage (without the percent sign):", "Investment Advisor", JOptionPane.PLAIN_MESSAGE); 

        if (interestPct_Str != null && !interestPct_Str.isEmpty()) 
           interest = Double.parseDouble(interestPct_Str);

        else 
           System.exit(0); 


        targetAmt_Str = JOptionPane.showInputDialog (null, "Enter your target amount:", "Investment Advisor", 
        JOptionPane.PLAIN_MESSAGE);


        if (targetAmt_Str != null && !targetAmt_Str.isEmpty())
           target = Double.parseDouble(targetAmt_Str);

        else
           System.exit(0);

        result = "You will reach your target amount in " + 
              investment1(principle, target, interest) + 
              (investment1(principle, target, interest) == 1 ? " year." : " years.");

        JOptionPane.showMessageDialog (null, result, "Investment Advisor", JOptionPane.PLAIN_MESSAGE);

        again = JOptionPane.YES_OPTION;

     }

     if (again != JOptionPane.NO_OPTION) 
        again = JOptionPane.showConfirmDialog(null, "Find Another?", "", JOptionPane.YES_NO_OPTION, 
        JOptionPane.PLAIN_MESSAGE); 

} while (again == JOptionPane.YES_OPTION);
}
}

共有1个答案

班经亘
2023-03-14

只需添加对result.isempty()的调用

String result = JOptionPane.showInputDialog ("Input Text Here");

if( result.isEmpty() )
{
// quit the loop
}
 类似资料:
  • 问题内容: 我有一个isNotEmpty函数,如果字符串不为空,则返回true;如果字符串为空,则返回false。我发现如果我通过它传递一个空字符串,它将无法正常工作。 使用isNotEmpty验证字符串: 如果该字符串为空,则其他字符串将不会执行,我不明白为什么,请有人对此有所帮助。 问题答案: 实际上是简单的问题。更改: 至 可以说,您可能还想将其更改为: 因为如果您传递的是数字0以及其他一些

  • 问题内容: 如何检查是否是那里的? 我想分配给是否有结果,否则。 我当前的代码是: 问题答案:

  • 问题内容: JavaScript中是否可以检查字符串是否为URL? 正则表达式被排除在外,因为URL的写法很像;也就是说,它可能没有,或者。 问题答案: 与答案相关的问题: 或来自Devshed的此正则表达式:

  • 问题内容: 如何确定变量是字符串还是JavaScript中的其他内容? 问题答案: 您可以使用运算符: 在使用创建的字符串的情况下,这将无法正常工作,但很少使用,建议在[1][2]中使用。如果需要,请参阅其他答案以了解如何处理这些问题。

  • 本文向大家介绍检查Java中的字符串是否为空(“”)或null,包括了检查Java中的字符串是否为空(“”)或null的使用技巧和注意事项,需要的朋友参考一下 要检查Java中的字符串是否为空或为空,请使用==运算符。 假设我们有以下字符串。 现在让我们检查两个字符串是否为null或为空。结果将为布尔值。 示例 输出结果

  • 问题内容: 假设我有一个包含一些字母和标点符号的String数组 在字母[3]中,我们带有“。” 如何检查字符串是否为标点符号?我们知道有许多可能的标点符号(,。?!等) 到目前为止,我的进度: 问题答案: 您是否还需要检查更多标点符号? 如果是这样,您可以执行此操作。