我有以下代码:

import java.io.*;

public class ExamPrep2
{
    public static int getPositiveInt()
    {

    BufferedReader stdin = new BufferedReader(
            new InputStreamReader(System.in));

    int positiveInt = 0;

    try
    {
        positiveInt = stdin.read();
        if (positiveInt < 0) {
            System.out.print("A negative int! -1");
            return -1;
        }
        else {
            System.out.print("Yay! " + positiveInt);
            return positiveInt;
        }
    }
    catch (IOException e)   {
        System.out.print("Positive int is NaN! -2");
        return -2;
        }
    }

    public static void main(String[] args)
    {
        System.out.print("Enter a positive integer:");
        getPositiveInt();
    }
}


但是,当我输入值时,我没有得到与输入相同的值。

例如:

Enter a positive integer:1
Yay! 49
Enter a positive integer:-2
Yay! 45
Enter a positive integer:x
Yay! 120


我忽略了什么明显的事情?

最佳答案

stdin.read();方法不是获取int值的正确方法。使用stdin.readLine()

  positiveInt = Integer.parseInt(stdin.readLine());

07-24 21:30