May*_*ist 5 java java.util.scanner
在HACKERRANK中,这一行代码经常发生。我认为这是跳过空格,但那是什么"\r\u2028\u2029\u0085"意思
scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");
Run Code Online (Sandbox Code Playgroud)
Sur*_*ngh 12
Scanner.skip跳过与模式匹配的输入,这里的模式是:-
\ n换行符
\ u2028将字符与索引为2018的基数16(8232的基数10或20050的基数8)区分大小写
第一种替代方案\ r \ n
第二种选择[\ n \ r \ u2028 \ u2029 \ u0085]
跳过\r\n适用于Windows。
其余的是standard \r=CR,\n=LF(请参阅\ r \ n,\ r,\ n有什么区别?)
然后是一些Unicode特殊字符:
u2028 = LINE SEPARATOR(https://www.fileformat.info/info/unicode/char/2028/index.htm)
u2029 = PARAGRAPH SEPARATOR
(http://www.fileformat.info/info/unicode/char/2029/index.htm)
u0085 = NEXT LINE(https://www.fileformat.info/info/unicode/char/0085/index.htm)
小智 6
OpenJDK 的源代码显示 nextLine() 使用此正则表达式作为行分隔符:
private static final String LINE_SEPARATOR_PATTERN = "\r\n|[\n\r\u2028\u2029\u0085]";
Run Code Online (Sandbox Code Playgroud)
\r\n是一个Windows行结尾。\n是UNIX行结尾。\r是Macintosh (pre-OSX) 行结尾。\u2028是行分隔符。\u2029是段落分隔符。\u0085是下一行 (NEL)。| 归档时间: |
|
| 查看次数: |
6273 次 |
| 最近记录: |