从方法中更改变量的值会返回随机的'数

时间:2013-04-22 16:34:35

标签: java methods

我正在尝试用Java创建一个inputhandler。这是(代码片段)的源代码:

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Inputhandler{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
public int InputInt;

public int GetInt(){    
    try{
        InputInt = br.read();
        } catch(Exception e){
            System.out.println("Input should be a number. Please try again\n");
            GetInt();
        }
    return InputInt;
    }
}

我正在尝试从第10行获取用户输入,然后将该输入设置为InputInt的值。但是,当我执行程序并调用这样的方法时:

Inputhandler in = new Inputhandler();
int a = in.GetInt("A question"); //I would input a number like 200
System.out.println(a);

它打印出来,至少是它对我来说是一个随机数字。像51,48,55这样的数字。我在这里做错了什么?为什么我输入的数字不是分配给InputInt的?

我排序它会与传递引用和传值有关,我理解这些原则。我(我想)完全理解this,但仍然无法解决问题。

请帮帮我! 提前谢谢。

1 个答案:

答案 0 :(得分:1)

您输入的int实际上是the byte value of a character。尝试

InputInt = Integer.valueOf(br.readLine());

代替。