使用解析的字符串到 Int 评估:

我对java非常陌生,并试图为用户编写一个程序来输入一个数字并将其与一组规则进行比较。我在 JOptionPane 之后使用了 parse.Int,但是当我尝试使用“if”语句时,我收到了错误的操作数类型;第一个类型字符串,第二个类型 int。我不明白,因为我使用了 parse 为什么它不起作用。我知道我错过了一些东西。


    answer = 0;

    while(answer == JOptionPane.YES_OPTION)


  JOptionPane.showMessageDialog(null, "  enter a number between 1-50", "by ...`enter code here`",

                    JOptionPane.PLAIN_MESSAGE);

      String inputNumber; 

      inputNumber = JOptionPane.showInputDialog("Input an integer from one to 50: ");


      Integer.parseInt(inputNumber);


      if (inputNumber == 0 || inputNumber >= 51);


哔哔one
浏览 117回答 3
3回答

慕姐8265434

您忽略了Integer.parseInt. inputNumber仍然是一个String变量,而不是一个数字。为了更清楚,我会重命名它:// This variable is the string representation...String inputText = JOptionPane.showInputDialog("Input an integer from one to 50: ");// ... and now inputNumber is the integer value parsed from inputTextint inputNumber = Integer.parseInt(inputText);if (inputNumber < 1 || inputNumber > 50){&nbsp; &nbsp; ...}请注意,Integer.parseInt如果用户不输入整数,则会引发异常,但这可能需要在单独的步骤中修复......

当年话下

Integer.parseInt是一个函数,它将返回int.&nbsp;在这种情况下,您作为参数传递的变量inputNumber将仍然是一个String变量。因此,您需要将结果Integer.parseInt赋值给类型的新变量,int然后使用该变量进行比较。

白衣非少年

请参阅代码中的注释。此外,您需要在 Integer.parseInt 周围进行 try/catch 或 throws (不知道您想在哪里拥有它):answer = 0;while(answer == JOptionPane.YES_OPTION)&nbsp; ...&nbsp; String inputNumber;&nbsp;&nbsp; inputNumber = JOptionPane.showInputDialog("Input an integer from one to 50: ");&nbsp; //replace:&nbsp; //Integer.parseInt(inputNumber);&nbsp; int number = Integer.parseInt(inputNumber);&nbsp; //replace:&nbsp; //if (inputNumber == 0 || inputNumber >= 51);&nbsp; if (number == 0 || number >= 51);&nbsp;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java