read()读取键盘数据计算字节的问题
public class CharDecode {
public static void main(String[] args) throws Exception
{ System.out.println("please enter a chinese word:");
int ch = 0;
while(true)
{
ch = System.in.read();
System.out.println(ch);
System.out.println("从这儿"+Integer.toHexString(ch)+"到这儿");
break;
}
}
}
这个读取键盘的输入的数据,我直接按的enter键换行,ch输出的是13,换行是/n/r两个字节,怎么读取的是
13个字节??
------解决方案--------------------来自百度知道:
System.in返回的是InputStream指向命令行输入的字节流,它的read方法以字节流的方式来读取命令行的输入的数据。
也就是说,输入的字符,以字节流的方式从命令行传递给变量a,因此此时a是一个整数(字节流以整数的方式来表示)。
实际上这个整数是ascii码中对应十进制数(具体可查看ascii码对照表)。
比如输入a,因为a在ascii码中对应的十进制数是97,所以输出的就是97
------解决方案--------------------