Hi Tagir,

Well spotted! I'll fix this.

Thanks,

s'marks

On 9/3/15 11:57 PM, Tagir F. Valeev wrote:
Hello!

In tokens() JavaDoc:

      * <pre>{@code
      * List<String> result = new Scanner("abc,def,,ghi").useDelimiter(",").
      *     .tokens().collect(Collectors.toList());
      * }</pre>

Here the dot is duplicated after "useDelimiter()" and before
"tokens()" on the next line.

Everything else looks good to me.

With best regards,
Tagir Valeev.

SM> Please review this update to the Scanner enhancement I proposed a while 
back. [1]

SM> I've updated based on some discussions with Paul Sandoz. The updates since 
the
SM> previous posting are 1) coordination of spec wording from Matcher; 2) 
addition
SM> of ConcurrentModificationException; 3) updating tests to use the streams 
testing
SM> framework; 4) some javadoc cleanups.

SM> Bug:

SM>         https://bugs.openjdk.java.net/browse/JDK-8072722

SM> Webrev:

SM>         http://cr.openjdk.java.net/~smarks/reviews/8072722/webrev.2/

SM> Specdiff:

SM>
SM> 
http://cr.openjdk.java.net/~smarks/reviews/8072722/specdiff.2/overview-summary.html


SM> For convenience, I've appended below the description from my earlier post. 
[1]

SM> s'marks

SM> [1]
SM> http://mail.openjdk.java.net/pipermail/core-libs-dev/2015-August/034821.html


SM> -------


SM> Scanner is essentially a regular expression matcher that matches over 
arbitrary
SM> input (e.g., from a file) instead of a fixed string like Matcher. Scanner 
will
SM> read and buffer additional input as necessary when looking for matches.

SM> This change proposes to add two streams methods:

SM> 1. tokens(), which returns a stream of tokens delimited by the Scanner's
SM> delimiter. Scanner's default delimiter is whitespace, so the following will
SM> collect a list of whitespace-separated words from a file:

SM>      try (Scanner sc = new Scanner(Paths.get(FILENAME))) {
SM>          List<String> words = sc.tokens().collect(toList());
SM>      }

SM> 2. findAll(pattern), which returns a stream of match results generated by
SM> searching the input for the given pattern (either a Pattern or a String). 
For
SM> example, the following will extract from a file all words that are 
surrounded by
SM> "_" characters, such as _foo_ :

SM>      try (Scanner sc = new Scanner(Paths.get(FILENAME))) {
SM>          return sc.findAll("_([\\w]+)_")
SM>                   .map(mr -> mr.group(1))
SM>                   .collect(toList());
SM>      }

SM> Implementation notes. A Scanner is essentially already an iterator of 
tokens, so
SM> tokens() pretty much just wraps "this" into a stream. The findAll() methods 
are
SM> a wrapper around repeated calls to findWithinHorizon(pattern, 0) with a bit 
of
SM> refactoring to avoid converting the MatchResult to a String prematurely.

SM> The tests are pretty straightforward, with some additional cleanups, such as
SM> using try-with-resources.

SM> -------

Reply via email to