问题描述
'''Scanner.skip(“(\ r \ n | [\ n \ r \ u2028 \ u2029 \ u0085])?”);''' 谁能解释这个代码... 我仍然对该代码以及该代码在编译时的工作方式感到困惑
解决方法
scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");
您可以阅读预定义字符类的所有详细信息:
https://docs.oracle.com/javase/10/docs/api/java/util/regex/Pattern.html
寻找水平空白和换行符。
,此代码告诉扫描程序在输入中skip unwanted characters,忽略定界符。
在这种情况下,将跳过与换行处理相关的一组字符:
- 一对
\r\n
CRLF,与Windows一样 - 或以下任何单个字符:
-
\r
-CR(回车)MacOS行分隔符 -
\n
-LF(换行)Unix行分隔符 -
\u2028
-Unicode line separator -
\u2029
-Unicode paragraph separator -
\u0085
-Unicode next line
-
该字符串的解释:
\r\n
-类似于Windows中的一对CRLF,或以下任何单个字符:
\r
-CR(回车)MacOS行分隔符,
\n
-LF(换行)Unix行分隔符,
\u2028
-Unicode行分隔符,
\u2029
-Unicode段落分隔符,
\u0085
-Unicode下一行。