如何使用System.in.read()从用户读取字符?

时间:2017-08-14 16:48:39

标签: java io byte

System.in.read()可以读取一个字节并将其作为int返回(范围从0到255)。如何从整数值大于255的用户获取Unicode字符?

编辑:我知道可以使用Reader来解决这个问题,我只是想知道System.in.read()是否只是 >> 读取一个字符(> 255)要存储多个字节(因为System.in.read()最多只能读取一个字节)?

2 个答案:

答案 0 :(得分:0)

参考: https://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html#read()

" ...值字节作为int返回,范围为0到255 ..."

System.in.read()根本无法读取大于255的字符。

答案 1 :(得分:-1)

enter image description here我刚刚测试了System.in.read()方法,同时使用字母“ת”作为输入,它返回260,所以它很可能返回(或读取)带有位代码的字符大于255。

          public static void main(String[] args) throws IOException {
           System.out.print("Enter something: ");
           int s = System.in.read();
           System.out.print('\n' + s);
           }

enter image description here

似乎每台计算机/机器都有自己的char-to-int(大于255),所以每台计算机都可能会显示我输入的字母different的不同结果。