java - 请求 int 输入时出现奇怪的返回值

标签 java integer

我有以下代码:

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());

关于java - 请求 int 输入时出现奇怪的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20257346/

相关文章:

java - android - 生成随机日期和时间

Erlang:原子或整数

c - C中的数组索引,它必须是整数吗?它可以是一个 float 吗?

java - libgdx 中矩形和圆形扇区的交集

java - 这个 Runnable 不会发生内存泄漏吗?

java - 公共(public)接口(interface)和抽象接口(interface)的区别?

java - 使用 Glassfish 的 Ldap 基本身份验证

math - 将罗马数字翻译成阿拉伯数字

javascript - 如何打印出一 block 矩形重复数字?

java - 尝试识别整数时遇到问题