为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

哔哔one 2022-06-04 15:24:49
我对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);
查看完整描述

3 回答

?
慕姐8265434

TA贡献1813条经验 获得超2个赞

您忽略了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 inputText

int inputNumber = Integer.parseInt(inputText);


if (inputNumber < 1 || inputNumber > 50)

{

    ...

}

请注意,Integer.parseInt如果用户不输入整数,则会引发异常,但这可能需要在单独的步骤中修复......


查看完整回答
反对 回复 2022-06-04
?
当年话下

TA贡献1890条经验 获得超9个赞

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



查看完整回答
反对 回复 2022-06-04
?
白衣非少年

TA贡献1155条经验 获得超0个赞

请参阅代码中的注释。此外,您需要在 Integer.parseInt 周围进行 try/catch 或 throws (不知道您想在哪里拥有它):


answer = 0;

while(answer == JOptionPane.YES_OPTION)

  ...

  String inputNumber; 

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


  //replace:

  //Integer.parseInt(inputNumber);

  int number = Integer.parseInt(inputNumber);


  //replace:

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

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


查看完整回答
反对 回复 2022-06-04
  • 3 回答
  • 0 关注
  • 116 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信