我需要分割由“|”分隔的弹簧。当我使用String.split("|")
它不会给我正确的结果。转义“|”登录java
String[] arr = "1234|5678".split("|"); System.out.println(arr[1]); \\ This prints "1"
我一直使用转义字符"\"
尝试,但我从Eclipse中得到一个无效的转义序列错误。
我错过了什么?
我需要分割由“|”分隔的弹簧。当我使用String.split("|")
它不会给我正确的结果。转义“|”登录java
String[] arr = "1234|5678".split("|"); System.out.println(arr[1]); \\ This prints "1"
我一直使用转义字符"\"
尝试,但我从Eclipse中得到一个无效的转义序列错误。
我错过了什么?
你要明白,有逃避这里的两个层次:
您是否希望图案\|
正则表达式 - 但为了写,作为一个字符串文字,你需要躲避\
,所以你最终:
split("\\|")
另一种方法是使用类似Guava's Splitter
这是更简单的使用,因为它没有把字符串作为正则表达式 - 尽管它允许你指定一个Pattern
当你想正则表达式:
Splitter splitter = Splitter.on('|');
...
List<String> list = splitter.splitToList("1234|5678");
String.split("\\|")
你想分割字符串\|
,以逃避管道。但要将\|
表示为字符串,则需要跳过\
。所以你做"\\|"
。
|
是正则表达式汉字意为空字符串,
所以,你需要逃避它,就像
"1234|5678".split("\\|");