Win a copy of Pragmatic AI this week in the Artificial Intelligence forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Jeanne Boyarsky
  • Liutauras Vilda
  • Campbell Ritchie
  • Tim Cooke
  • Bear Bibeault
Sheriffs:
  • Paul Clapham
  • Junilu Lacar
  • Knute Snortum
Saloon Keepers:
  • Ron McLeod
  • Ganesh Patekar
  • Tim Moores
  • Pete Letkeman
  • Stephan van Hulst
Bartenders:
  • Carey Brown
  • Tim Holloway
  • Joe Ess

Scanner.stream()  RSS feed

 
Marshal
Posts: 59786
188
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

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?
 
Bartender
Posts: 10575
66
Eclipse IDE Hibernate Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

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
 
Campbell Ritchie
Marshal
Posts: 59786
188
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

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

I had forgotten that. That is a good justification for giving it methods to create Streams.
 
Campbell Ritchie
Marshal
Posts: 59786
188
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Things changed in Java9.
 
It is sorta covered in the JavaRanch Style Guide.
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!