黑马程序员技术交流社区

标题: 第10课:从控制台读取输入 [打印本页]

作者: 滔哥    时间: 2014-8-13 16:06
标题: 第10课:从控制台读取输入
在很多情况下,我们需要Java程序能够对我们指定的值进行计算,这样的话就需要我们的Java程序能够读取我们所输入的值。我们可以使用Java自带的Scanner类来从控制台获取输入。

Scanner类在包java.util里。我们一般在程序代码的最开始引入所有需要用到的包和类。下面我们尝试引入Scanner类。让我们在代码的最前面插入一行,然后写下这条语句:


  1. import java.util.Scanner
复制代码

Java使用System.out来表示标准输出设备,用System.in来表示标准输入设备。既然Java本身并不直接支持控制台输入,我们就要使用Scanner类创建它的对象,用以读取来自System.in的输入,如下所示,写在第5行吧:
  1. Scanner input = new Scanner(System.in);
复制代码


语法new Scanner(System.in)表明创建了一个Scanner类型的对象。语法Scanner input声明input是一个Scanner类型的变量。整行代码表明创建了一个Scanner对象,并且将它的引用赋值给了变量input。对象可以调用它自己的方法,我们在这里声明的变量i是int类型,所以应该使用nextInt()方法来接收数据。相应的,还有nextByte()、nextShort()、nextLong()、nextFloat()、nextDouble()这些方法,同学们可以回去自己尝试一下。


接下来我们要通过调用nextInt()来读取一个整数:

  1. i = input.nextInt();
复制代码

重要的事情都做完了,然后我们来输出i看一看。

  1. System.out.println(i);
复制代码




作者: 张周飞    时间: 2014-8-13 16:10
涛哥  你 你 又这么无私 这么给力  
{:3_67:}我要给你生孩子!!!!!!
作者: ⋛⋌⋚JEEP    时间: 2014-8-13 16:46
这个Scanner类不错,比较方便,一般都习惯把数据封装文件后再用IO流来输入输出:)
作者: 滔哥    时间: 2014-8-13 17:24
⋛⋌⋚JEEP 发表于 2014-8-13 16:46
这个Scanner类不错,比较方便,一般都习惯把数据封装文件后再用IO流来输入输出 ...

Java的输入方式比较繁琐

作者: 茄子    时间: 2014-8-13 18:00
在学了io之后,控制键盘输入,我脑子一热,就来了
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
作者: 狐狸FMF    时间: 2014-8-13 18:22
哇塞 这是前边的知识么,视频前边没有,这个知道了知道,基础测试又能搞定一道题了,感谢~~!!!
作者: jiangweibin2573    时间: 2014-8-13 18:33
早早学会输入就是OK
作者: jiangweibin2573    时间: 2014-8-13 18:34
滔哥 发表于 2014-8-13 17:24
Java的输入方式比较繁琐

还是C方便,一个scanf、printf完成
作者: liqiaohui    时间: 2014-8-13 20:22
scanfer  正好我要看呢  滔哥这一讲  ok啦
作者: sk0806    时间: 2014-8-13 23:40
我记得上课时刚开始常用接收从键盘输入,,,前几天复习看视频怎么也想不起来了,印象中当时讲的不是这个,,彻底忘没了,从这开始学起
作者: 790324255a    时间: 2014-8-13 23:51
Scanner不能读取空格后的数据
作者: 张亚军    时间: 2014-8-14 00:24

好帖,学习了
作者: 我行我SHOW‰    时间: 2014-8-14 00:59
谢谢滔哥分享~~~~~
作者: 董帅军    时间: 2014-8-14 09:16
很不错,很给力哦
作者: alexchy    时间: 2014-8-14 10:37
支持一下!
作者: 杨庆雷    时间: 2014-8-14 12:04
以前都是 字节流 学习了
作者: 冒牌高手    时间: 2014-8-14 12:36
定一个,啊啊哈哈
作者: 一顿一只牛    时间: 2014-8-14 21:29
千斤顶啊
作者: sydeay    时间: 2014-8-14 21:39
顶!控制台果然强大!
作者: 七年锦·旅行    时间: 2014-8-15 10:34
Scanner,一个很强大的Java工具!
作者: 钟翠翠    时间: 2014-8-15 10:52
滔哥辛苦  必须顶起!
作者: 依然超级赛亚人    时间: 2014-8-15 15:21
用ecplise软件之外的编辑软件自己写代码,有的时候会忘记写括号中的System.in,晕。
作者: 王远洋    时间: 2014-8-16 16:32
32个赞,辛苦了      
作者: KID灬熊孩子    时间: 2014-8-17 00:11
刚学IO  转化流好麻烦啊
作者: 菜鸟一号    时间: 2014-8-17 09:14
张周飞 发表于 2014-8-13 16:10
涛哥  你 你 又这么无私 这么给力  
我要给你生孩子!!!!!!

你是飞哥还是飞姐?;P
作者: 毛富强    时间: 2014-8-17 10:07
看了  毕向东的 视频  键盘录入
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
作者: 华谦    时间: 2014-8-17 10:22
幸亏我还是记起这玩意了:lol
作者: 于龙超123    时间: 2014-8-17 22:56
Scanner,最喜欢的一个类!
作者: 思维    时间: 2014-8-18 14:45
今天又学到新知识了!赶快抄到笔记本上;P
作者: GYSWL    时间: 2014-8-18 22:29
谢谢滔哥分享
作者: 木易在他乡    时间: 2014-8-19 10:29
加分加币,一行多个数值输入以空格分开,enter后运行
作者: 王健辉    时间: 2014-8-19 11:09
Scanner很好用啊
作者: dreamseekerkun    时间: 2014-8-19 23:03
这个不错,第一次见,挺方便的
作者: Imp_x    时间: 2014-8-20 17:47
张周飞 发表于 2014-8-13 16:10
涛哥  你 你 又这么无私 这么给力  
我要给你生孩子!!!!!!

你打算生几保胎啊{:3_64:}
作者: 波风梅西    时间: 2014-8-20 20:06
学习了  顶
作者: wfaly    时间: 2014-8-23 22:45
Scanner,谢谢分享!
作者: 张小楼    时间: 2014-8-25 13:59
java的输入输出不方便的说。。。
作者: 28了还能学吗    时间: 2014-8-25 14:11
后面看不懂了
作者: 28了还能学吗    时间: 2014-8-25 14:13
后面的看不懂了   难度大
作者: lby369    时间: 2014-12-28 22:11
这个不难。。经常用就简单了
作者: 有无相生    时间: 2015-2-25 21:06
这个应用性很大 还是要多用才能理解
作者: wwwlcy    时间: 2015-3-17 18:53
学习,学习了。
作者: heiheih    时间: 2015-3-18 10:15
xiexie 啦
作者: 锦2012    时间: 2015-3-18 11:39
感谢 很强打
作者: smile2015    时间: 2015-3-25 12:32
谢谢分享,学习到了!
作者: 小十    时间: 2015-3-28 23:48
只想弱弱的告诉楼主一句虽然只是个小程序,但是要关流...
作者: 凉仁日记    时间: 2015-5-6 18:51
好贴,继续给自己加油
作者: 桂翔    时间: 2015-5-18 15:57
学到了 ,一直不知道System.in是表示标准输入设备
作者: moheng116    时间: 2015-5-30 08:43
这种输入方式确实方便
作者: cyaimyt    时间: 2015-6-4 07:53
看看先,谢谢
作者: 特立独行    时间: 2015-11-9 23:00
有时候看视频上的内容不够精炼,看到涛哥的总结会很有帮助~
作者: fighting2016    时间: 2016-1-31 15:21
张周飞 发表于 2014-8-13 16:10
涛哥  你 你 又这么无私 这么给力  
我要给你生孩子!!!!!!

逗逼,我们做朋友吧{:2_36:}{:2_36:}{:2_36:}
作者: 星星的期望    时间: 2016-3-13 03:28
学会了(*^__^*) 嘻嘻……
作者: 星星的期望    时间: 2016-3-13 03:30
import java.util.*;
Scanner in=new Scanner(System.in);
作者: wangzhao    时间: 2017-2-28 08:20
System.out.print(i=input.nextInt());
作者: baby14    时间: 2019-7-16 07:28
多谢分享




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2