0

我正在尝试用 Java 制作一个输入处理程序。这是源代码的(片段):

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?

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

请帮帮我!提前致谢。

4

1 回答 1

1

int实际上是您输入的字符的字节值。尝试

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

反而。

于 2013-04-22T16:49:08.943 回答