scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");
Can someone explain, what does the above code mean.
I'm pretty new to Java.
Any help would be greatly appreciated.
解决方案
public Scanner skip(Pattern pattern)
Skips input that matches the specified pattern, ignoring delimiters. This method will skip input if an anchored match of the specified pattern succeeds.
If a match to the specified pattern is not found at the current position, then no input is skipped and a NoSuchElementException is thrown.
Since this method seeks to match the specified pattern starting at the scanner's current position, patterns that can match a lot of input (".*", for example) may cause the scanner to buffer a large amount of input.
So this allows you to "move" the scanner position using a regex.
Example :
Skip the start of the line :
Scanner scan = new Scanner("Hello world");
scan.skip("Hello ");
System.out.println(scan.nextLine());
scan.close();
world
Since this is using a regex, you skip until a work in the middle of a line :
Scanner scan = new Scanner("Hello world, I am happy to see you");
scan.skip(".*I am ");
System.out.println(scan.nextLine());
scan.close();
happy to see you