Java 使用解析进行字符串到整数的计算:

Java 使用解析进行字符串到整数的计算:,java,Java,我对java非常陌生,试图编写一个程序,让用户输入一个数字,并将其与一组规则进行比较。我在JOptionPane之后使用了parse.Int,但是当我尝试一个'if'语句时,我收到了一个错误的操作数类型;第一种类型是string,第二种类型是int。我不明白,因为我使用了parse,为什么它不起作用。我知道我错过了什么 answer = 0; while(answer == JOptionPane.YES_OPTION) JOptionPane.showMessageDia

我对java非常陌生,试图编写一个程序,让用户输入一个数字,并将其与一组规则进行比较。我在JOptionPane之后使用了parse.Int,但是当我尝试一个'if'语句时,我收到了一个错误的操作数类型;第一种类型是string,第二种类型是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);

您正在忽略
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)
{
    ...
}
//此变量是字符串表示形式。。。
字符串inputText=JOptionPane.showInputDialog(“输入一个从1到50的整数:”);
// ... 现在inputNumber是从inputText解析出来的整数值
int inputNumber=Integer.parseInt(inputText);
如果(输入编号<1 | |输入编号>50)
{
...
}

请注意,如果用户未输入整数,则
Integer.parseInt
将引发异常,但这可能需要在单独的步骤中解决…

您忽略了
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)
{
    ...
}
//此变量是字符串表示形式。。。
字符串inputText=JOptionPane.showInputDialog(“输入一个从1到50的整数:”);
// ... 现在inputNumber是从inputText解析出来的整数值
int inputNumber=Integer.parseInt(inputText);
如果(输入编号<1 | |输入编号>50)
{
...
}

请注意,如果用户未输入整数,则
Integer.parseInt
将引发异常,但这可能需要在单独的步骤中解决…

这是因为您正在将字符串(inputNumber)与int值进行比较。 试试这个

int myint = Integer.parseInt(inputNumber);
if (myint == 0 || myint >= 51) {
...
}

这是因为您正在将字符串(inputNumber)与int值进行比较。 试试这个

int myint = Integer.parseInt(inputNumber);
if (myint == 0 || myint >= 51) {
...
}

Integer.parseInt
是一个函数,它将返回
int
。但是,在本例中,作为参数传递的变量,
inputNumber
仍将是一个
String
变量。因此,您需要将
Integer.parseInt
的结果分配给类型为
int
的新变量,然后使用该变量进行比较。

Integer.parseInt
是一个函数,它将返回
int
。但是,在本例中,作为参数传递的变量,
inputNumber
仍将是一个
String
变量。因此,您需要将
Integer.parseInt
的结果分配给
int
类型的新变量,然后使用该变量进行比较。

请参见代码中的注释。此外,还需要在Integer.parseInt周围使用try/catch或throws(不知道要在哪里使用它):


请参见代码中的注释。此外,还需要在Integer.parseInt周围使用try/catch或throws(不知道要在哪里使用它):


非常感谢。这有助于我更好地理解它。我不知道我需要另一个变量。谢谢。这有助于我更好地理解它。我不知道我需要另一个变量。