我有一个字符串,需要使用 Scanner 类从开头到
\n
字符进行读取。问题是我的例子中的源流可能包含字符\u2028
。我知道 Scanner 类使用模式 "\r\n|[\n\r\u2028\u2029\u0085]"
来分隔行,因此输入行上的 Scanner.nextLine() :
1 2 3 4 5 '\u2028' 6 7 8
只会读到1 2 3 4 5
我认为,如果我可以强制扫描仪使用模式
[\n\r\u2029\u0085]
(默认扫描仪模式,没有 NEW_LINE 符号),这将解决我的问题。如何读取整个字符串而忽略 \u2028
符号?
@Ivar 精彩解决方案的代码:
String input = "1 2 3 4 5 \u2028 6 7 8\n9 10";
Scanner scanner = new Scanner(input).useDelimiter(Pattern.compile("[\n\r\u2029\u0085]"));
if (scanner.hasNext()) {
String result = scanner.next().replaceAll("\u2028", "");
System.out.println(result);
}
scanner.close();