为什么`.read()`数字的方法返回不同的数字

时间:2018-05-23 02:24:56

标签: java api

请解释我在此示例中使用System.in.read()方法,了解其他post。作为一个初学者,我发现当输入一个数字并在输出中得到不同的数字时,我不清楚,请澄清。

import java.io.IOException;

public class MainClass {

public static void main(String[] args) {
    int inChar;
    System.out.println("Enter a Character:");
    try {
        inChar = System.in.read();
        System.out.print("You entered ");
        System.out.println(inChar);
    }
    catch (IOException e){
        System.out.println("Error reading from user");
    }
}

1 个答案:

答案 0 :(得分:0)

System.in.read()将值读取为二进制值;例如,读取“a”将导致值为“97” - 此处的映射可在https://www.asciitable.com/处获得。

为了在Java中获得此文本表示,您希望将其读作字符或字符串 - 字符是单个值,而字符串是一个接一个的字符组合。例如:

public class MainClass {

public static void main(String[] args) {
        System.out.println("Enter a Character:");
        Scanner scanner = new Scanner(System.in);
        String input = scanner.nextLine();
        System.out.print("You entered ");
        System.out.println(input);
}

查看Scanner类以查看其他选项,您可以使用scanner.nextInt()来获取整数。