I'm practicing HashSet from Java book by Cay S. Horstmann and Gary Cornell and I think there's a mistake in example code on page 687. We have a Scanner
importing words to HashSet
and it looks like this (I removed some unneeded code to make a problem more visible):
Set<String> words = new HashSet<String>();
Scanner in = new Scanner(System.in);
while (in.hasNext()) {
String word = in.next();
words.add(word);
}
The problem is there's no way stop this loop. Or maybe there's something I'm missing?
To stop the loop I've added another static helper method:
public static boolean isStop(Scanner in) {
if (in.next().equals("stop")) {
return true;
}
return false;
}
And now the main code looks like this:
Set<String> words = new HashSet<String>();
Scanner in = new Scanner(System.in);
while (!isStop(in)) {
String word = in.next();
words.add(word);
}
Is there any other way to stop scanner loop? I can't believe that book's author has made a mistake ?