键盘输入

Java 语法
第 3 级 , 课程 7
可用

CodeGym大学课程体系中包括讲师在线讲座的部分视频。赶快报名吧


“阿米戈,该你了。我现在要给你讲述有关键盘输入的内容。”

“我们已经使用 System.out 在屏幕上显示数据。为了接收输入内容,我们将使用 System.in。”

“听起来很容易。”

“但是 System.in 有一个缺点 – 它只允许我们从键盘读取字符代码。为了解决这个问题,能够一次性读取大块数据,我们将使用更复杂的结构:”

示例 1
从键盘输入字符串和数字
InputStream inputStream = System.in;
Reader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

String name = bufferedReader.readLine(); //从键盘读取字符串
String sAge = bufferedReader.readLine(); //从键盘读取字符串
int nAge = Integer.parseInt(sAge); //将字符串转换为数字。
示例 2
上一个示例的精简版本:
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

String name = reader.readLine();
String sAge = reader.readLine();
int nAge = Integer.parseInt(sAge);
示例 3
更为精简
Scanner scanner = new Scanner(System.in);
String name = scanner.nextLine();
int age = scanner.nextInt();

“有任何问题吗?”

“嗯...我完全不明白。”

“要从键盘读取字符串,最方便的方法是使用 BufferedReader 对象。但是要做到这一点,你必须传入要从中读取数据的对象。在本例中,即为 System.in。”

“但是 System.inBufferedReader 不兼容,因此我们使用另一个适配器 – 另一个 InputStreamReader 对象。”

“我想我现在明白了。这个 Scanner 类是什么呢?”

“Scanner 可能很方便,但不是很有用。事实上,当你继续学习和工作时,你会经常使用 BufferedReader 和 InputStreamReader,而极少用到 Scanner。它在我们的示例中很方便,但将来不会经常有用。因此,我们不会经常使用它。”

“似乎清楚了,但是我不确定我是否已明白了全部内容。”

评论 (28)
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION
Christian A 级别 4,中國
6 六月 2024
如果你使用 Scanner 类读取一个整数,它会尝试解析输入的文本以确定其中是否包含一个有效的整数,并将其转换为整数类型。这种解析过程可能包括跳过空格、判断数字格式、检查是否溢出等操作。
Henry Lee 级别 6,Tokyo,Japan
9 八月 2023
CodeGym的b站视频里面讲得比较清楚,用的也是Scanner😂
Henry Lee 级别 6,Tokyo,Japan
9 八月 2023
作为小白理解完视频的内容之后,再来看这节课觉得还是能够理解的
Henry Lee 级别 6,Tokyo,Japan
9 八月 2023
说实话,示例1很重要。如果这个教程只给示例2的话我就要睡着了。
WL Lu 级别 14,Stuttgart,Germany
2 二月 2024
那你理解力很强 我还是一头雾水
级别 4,Chengdu,China
1 八月 2022
有点懵
偏要学会Java 级别 9,United States of America,China
20 四月 2022
菜鸡的我觉得Scanner很好用😃
Anonymous #11374458 级别 16,Cambridge,中国
1 八月 2023
我也这么觉得
幻梦 级别 16,无锡,中国
8 四月 2022
BufferedReader 提供通用的缓冲方式文本读取,readLine读取一个文本行,从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取。 InputStreamReader 它将字节流转换为字符流 关于字节流和字符流的区别 字符流用于处理字符串,字节流常用于处理二进制 参考来源 https://www.cnblogs.com/shenjiangwei/p/8930585.html
明霞钟隐 级别 6,Nanjing,China
31 三月 2022
我已经懵逼了🤣
瑞士巧克力 级别 16,Пекин,China
6 九月 2021
这种课程绝对不适合小白😂
PIG 级别 6,Omaha,China
12 十一月 2021
哈哈哈哈,肯定上下都不衔接,感觉只适合,知识学过一遍来,练题,查漏补缺
卢俊华 级别 4,China,China
8 二月 2022
0基本小白一脸懵逼中
WL Lu 级别 14,Stuttgart,Germany
2 二月 2024
还是在b站上学一段时间基础再来吧
Anonymous #10795181 级别 11,Hefei,China
24 八月 2021
过渡还有点问题,课程还需要优化
Anonymous #10795181 级别 11,Hefei,China
24 八月 2021
但是很喜欢这种边学边练的方式,按照我之前的性子,一天就看完一个Java教程,但是没有太多的练习,看的很头大,也没有学到东西
三七 级别 5,Jinan
26 七月 2021
...
晓开 级别 13,jiangxi,China
15 五月 2021
还之前百度了一下BufferedReader和InputStreamReader还是可以理解的。多敲几遍就会熟悉了。