Java Scanner with regex delimiter
java, java.util.scanner
Solution
A scanner is used to break up a string into tokens. Delimiters are the separators between tokens. The delimiters are what aren't matched by the scanner; they're discarded. You're telling the scanner that `-[a-zA-Z]\\s+` is a delimiter and since `-v` matches that regex it skips it.
If you're looking for a string that matches the regex, use `String.matches()`.
If your goal really is to split a string into tokens then you might also consider `String.split()`, which is sometimes more convenient to use.
Problem
Why does the following code return false? ``` Scanner sc = new Scanner("-v "); sc.useDelimiter("-[a-zA-Z]\\s+"); System.out.println(sc.hasNext()); ``` The weird thing is `-[a-zA-Z]//s+` will return true. I also can't understand why this returns true: ``` Scanner sc = new Scanner(" -v"); sc.useDelimiter("-[a-zA-Z]\\s+"); System.out.println(sc.hasNext()); ```