关于Scanner的一点小问题!!

CasterOxfd 2013-12-06 10:21:38
用Scanner扫描文档的时候,扫描一次后就到了文档结尾,可不可以让它再回到头开始扫描,或者用循环来实现多次扫描
...全文
909 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
小康师傅 2013-12-09
  • 打赏
  • 举报
回复
楼主是要用Scanner读取文本内容么?
可以用Scanner.hasNextLine
Scanner sc = new Scanner(new File("C:/test.txt"));
while(sc.hasNextLine()){
System.out.println(sc.nextLine());
}


文本内容为:

输出结果为:
name
address
ip

不知能否帮到楼主。
nmyangym 2013-12-09
  • 打赏
  • 举报
回复
引用 3 楼 u011228889 的回复:
就是这个问题 每次都只输出第一个name, 是不是就是处理完第一个name后,Scanner就扫描到了文档结尾,然后后面的name就都没有扫描
个人看法: 楼主可以把for循环放在while循环里,这样就不存在把scan“倒回去”的问题。

while (scan.hasNext()) {
	String sourse = scan.next();
	for (int i = 0; i < name.length; i++) {
		String target = name[i];
		System.out.println("人物 " + target + " 出现的次数: " +stringFind( sourse, target));
	}
}
harrisonkao 2013-12-09
  • 打赏
  • 举报
回复
外面套循环,重新new scanner对象贝
CasterOxfd 2013-12-06
  • 打赏
  • 举报
回复
引用 4 楼 suciver 的回复:
如果到末尾调用下scanner.reset();
试了下还是只有一个名字输出啊。。。泪奔。。 还有调用后是不是文件要重新再传进来,而且分隔符也要重新设置啊
suciver 2013-12-06
  • 打赏
  • 举报
回复
如果到末尾调用下scanner.reset();
CasterOxfd 2013-12-06
  • 打赏
  • 举报
回复

就是这个问题 每次都只输出第一个name, 是不是就是处理完第一个name后,Scanner就扫描到了文档结尾,然后后面的name就都没有扫描
CasterOxfd 2013-12-06
  • 打赏
  • 举报
回复
引用 1 楼 huxiweng 的回复:
判断到结尾,再从头开始啊,不就一个if么
如何回到头呢== 就是这个问题我昨天搞到三点多了,智商低了求不鄙视
teemai 2013-12-06
  • 打赏
  • 举报
回复
判断到结尾,再从头开始啊,不就一个if么

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧