System.in的read方法

这种方式极其简单,但是只能读入一个字符,且必须是字符类型,输出该字符的ASCII码。(如果输入字符串,则指能读入第一个字符,在下面的截图中可以看到:输入ab时输出了97,那么我们可以判断出只能读入第一个字符,因为a的ASCII码是97)

1
2
3
4
public static void main(String[] args) throws IOException {
int i = System.in.read();
System.out.println(i);
}

img

InputStreamReader和BufferedReader方法

这种方式可以读取一个字符串,但是如果需要读取int,float等类型仍需要自己转换

1
2
3
4
5
6
public static void main(String[] args) throws IOException {
InputStreamReader is = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(is);
String name = br.readLine();
System.out.println(name);
}

Scanner类

这种方式使用java5之后添加的Scanner类,Scanner类提供了读取int,float及字符串的方法,使用十分方便。同时,Scanner不仅可以读取键盘输入值,也可以读取文件内容,只需要将构造方法中的数据来源切换成该文件即可

如果先读取int,float,再读取字符串,要让指针移到下一行开头,不然读取不了字符串,反过来读取就没问题

1
2
3
4
5
6
7
8
9
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
float f = sc.nextFloat();
String s = sc.nextLine();
System.out.println(i);
System.out.println(f);
System.out.println(s);
}

image-20220317122927580

PS.

来源:java 读取键盘输入_呼延十-CSDN博客_java读取键盘输入