[Logo]
Forums Register Login
Scanner.stream()
 

Winston Gutkowski wrote:. . . Pity that Scanner doesn't have a stream() method.

Winston

When Streams first came out, Cay Horstmann wrote the same sort of thing in a blog. I am not quite sure about that. Half of me thinks that Scanner ought to have a lines() method returning a Stream<String> (like BufferedReader). The other half thinks that Scanner is intended to tokenise its input, giving you anint then a double then a word, so what would its method look like? Maybe a tokens() method returning separate tokens into a Stream<String>, and maybe a lines() method as before?
 

Campbell Ritchie wrote:The other half thinks that Scanner is intended to tokenise its input, giving you anint then a double then a word, so what would its method look like?


Well, by default Scanner is an Iterator to its tokens, which suggests to me that it could possibly look something like this:but since I'm new to all this stuff there may well be better ways - or I could be totally wrong.

Edit - Looking at the docs, it seems that it might be better to use StreamSupport.stream(Supplier, int, boolean), since Iterable's default method returns an early-binding Spliterator; but not sure how to do that yet, or whether it makes any difference in this case.

Winston
 

Winston Gutkowski wrote:. . . Scanner is an Iterator . . . Winston

I had forgotten that. That is a good justification for giving it methods to create Streams.
Things changed in Java9.
Wink, wink, nudge, nudge, say no more ... https://richsoil.com/cards


This thread has been viewed 694 times.

All times above are in ranch (not your local) time.
The current ranch time is
Jan 21, 2018 15:49:39.