黑马程序员技术交流社区

标题: 关于Scanner如何工作的问题,今天看书遇到的 [打印本页]

作者: Pheinogin    时间: 2014-9-27 20:18
标题: 关于Scanner如何工作的问题,今天看书遇到的
本帖最后由 Pheinogin 于 2014-9-30 21:20 编辑

1. 如果从文件中读取数据
例如有一个名为test.txt的文件,包含了一行内容:
34 567
Scanner input= new Scanner(new File("test.txt"));
int intV=input.nextInt();
String sLine =input.nextLine();
这时候intV的值为34,而sLine包含的字符是‘ ’、‘5’、‘6’、‘7’。

2、当键盘输入的时候,先敲34,然后回车,然后敲567,然后回车,还是下面的代码,
Scanner input= new Scanner(System.in);
int intV=input.nextInt();
String sLine =input.nextLine();

这个时候intV为34,而sLine是一个空字符串。

好的,现在问题来了,请问这是什么样的情况,还有学挖掘机技术去哪家比较强……
作者: ql627666537    时间: 2014-9-27 22:48
第一个:空格不是int类型   第二个:567不是String类型
作者: yueyazhishang    时间: 2014-9-28 08:46
nextInt(),获取的是第一个输入单元,这个单元要是int行,否则会报错;nextLine()获取的是一行数据,它是以Stirng类型进行的。
作者: bbdeyouxang    时间: 2014-10-2 09:32
挖掘机技术……
作者: getone    时间: 2014-10-2 14:41
我的基础测试题也涉及到scanner,想问一下,如果输入的是带空格的字符串,用scanner怎么获取?另外,挖掘机什么的要找副校长
作者: yueyazhishang    时间: 2014-10-3 14:09
本帖最后由 yueyazhishang 于 2014-10-3 14:10 编辑
getone 发表于 2014-10-2 14:41
我的基础测试题也涉及到scanner,想问一下,如果输入的是带空格的字符串,用scanner怎么获取?另外,挖掘机 ...

用split截取
作者: ooEye    时间: 2014-10-4 20:41
这个应该跟C语言有相似之处:1.nextInt()是输入整数,指针读到4之后的空格之后发现“34_”(_ 表示空格哈)不是数字,于是指针停在了空格的位置,所以intV值为34,然后读取nextLine()读取一行,读取的就是后面的空格和567,即sLine包含的字符是 ' '、‘5’、‘6’、‘7’;2.为什么第二个sLine是一个空字符串呢?这是应为nextLine()读取的是一行,读到换行符就结束了(换行符不包含在字符串内),你敲完34后回车,nextLine()读到34和回车符不是数字,就将34存到intV中,第二次读到了回车符,结束读取的这一行,所以nextLine()读到的是一个没有任何字符的空行
作者: getone    时间: 2014-10-9 09:59
yueyazhishang 发表于 2014-10-3 14:09
用split截取

问题解决,非常感谢!
作者: yueyazhishang    时间: 2014-10-9 10:25
getone 发表于 2014-10-9 09:59
问题解决,非常感谢!

一起学习,共同进步
作者: zz_job    时间: 2014-10-10 00:46
正解是这样的==>34存入intV没有问题  但是你回车的那一次  回车被当作字符串中的内容存入了sLine中   你用cmd输入应该就不会出现这种情况  但是用Eclipse会因为软件的原因使你还能打出567   so...  想解决这个问题  你可以再new一个Scanner对象出来  或者在intV后面加一个换行输出  这样就好了  嘿嘿   非常经典的问题呢
作者: zz_job    时间: 2014-10-10 00:57
我已经非常努力的回帖了...为咩没人给我加技术分啊...泪奔.....      更正一下==>34回车后..我的Eclipse不能再输入东西了,CMD也不行...不知道楼主怎么做到的  ;   又试了一下  中间加System.out.println();也不能实现...我回去翻一下代码...忘了中间加什么能实现了..呃...




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