我有以下代码:
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());