一、使用System.in.read()一次获取一个字节
输入再多数据,只会获取第一个字节的int形式。获取的是字节,而不是字符,所以如果输入中文字符,强转后会得到乱码
1 try{2 int in_num=System.in.read(); //获取的是一个字节的int类型
3 System.out.println("强转前:"+in_num);4 System.out.println("强转后:"+(char)in_num);5 } catch(IOException e) {6 e.printStackTrace();7 }
1.输入:你
强转前:196强转后:?
2.输入:@
强转前:64强转后:@
3.输入:space(一个空格)
强转前:32强转后: //强转后得到的是一个空格,有占位。只是看不到而已
4.输入:enter(换行)
强转前:13强转后: //强转后得到的是一个换行。
5.输入:tab(水平制表符)
强转前:9强转后: //强转后得到的是一个水平制表符(8个空格)
二、使用Scanner获取
1 Scanner in=newScanner(System.in);2 System.out.println("获取字符串:"+in.next());3 //System.out.println("获取一行数据:"+in.nextLine());