Java书中扫描器的错误示例?
发布时间:2020-12-15 04:23:09 所属栏目:Java 来源:网络整理
导读:我正在从Cay S. Horstmann和Gary Cornell的 Java书中练习HashSet,我认为第687页的示例代码中有一个错误.我们有一个Scanner导入HashSet的单词,它看起来像这样(我删除了一些不需要的代码来制作一个问题更明显): SetString words = new HashSetString();Scanne
我正在从Cay S. Horstmann和Gary Cornell的
Java书中练习HashSet,我认为第687页的示例代码中有一个错误.我们有一个Scanner导入HashSet的单词,它看起来像这样(我删除了一些不需要的代码来制作一个问题更明显):
Set<String> words = new HashSet<String>(); Scanner in = new Scanner(System.in); while (in.hasNext()) { String word = in.next(); words.add(word); } 问题是没有办法阻止这个循环.或者也许有些东西我不见了? 为了停止循环,我添加了另一个静态辅助方法: public static boolean isStop(Scanner in) { if (in.next().equals("stop")) { return true; } return false; } 现在主代码看起来像这样: Set<String> words = new HashSet<String>(); Scanner in = new Scanner(System.in); while (!isStop(in)) { String word = in.next(); words.add(word); } 有没有其他方法可以阻止扫描仪循环?我不敢相信这本书的作者犯了错误? 解决方法
一旦此条件为假,循环就会停止:
in.hasNext() 即,没有更多的话. 循环内部是一个读取下一个单词的命令: in.next() 因此,在扫描仪无法读取更多单词之前,将继续读取单词.该循环将在扫描仪正在读取的任何内容结束时终止. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |