解释用JAVA编写的这一行
问题内容:
在HACKERRANK中,这行代码非常频繁地出现。我认为这是跳过空格,但那是什么"\r\u2028\u2029\u0085"
意思
scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");
问题答案:
Scanner.skip跳过与模式匹配的输入,这里的模式是:-
(\ r \ n | [\ n \ r \ u2028 \ u2029 \ u0085])?
- ?精确匹配零或前一个字符。
- | 另类
- []匹配出现在单个字符
- \ r匹配回车符
-
\ n换行符
-
\ u2028将字符与索引为2018的基数16(8232的基数10或20050的基数8)区分大小写
-
\ u2029将字符与索引为2029 base 16(8233 base 10或20051 base 8)区分大小写
- \ u0085将字符与索引为85 base 16(133 base 10或205 base 8)区分大小写
第一种替代方案\ r \ n
- \ r匹配回车符(ASCII 13)
- \ n匹配换行符(ASCII 10)
第二种选择[\ n \ r \ u2028 \ u2029 \ u0085]
- 匹配[\ n \ r \ u2028 \ u2029 \ u0085]下面列表中存在的单个字符
- \ n匹配换行符(ASCII 10)
- \ r匹配回车符(ASCII 13)
- \ u2028按字面意义(区分大小写)匹配具有索引202816(823210或200508)的字符LINE SEPARATOR
- \ u2029按字面意义(区分大小写)将匹配与索引202916(823310或200518)的字符匹配
- \ u0085从字面上匹配具有索引8516(13310或2058)的字符(区分大小写)NEXT LINE