嗨,我正在尝试拆分由竖线分隔的字符串。例如:
String str = "a=1|b=2";
Run Code Online (Sandbox Code Playgroud)
在java中,我们应该这样做:
str.split("\\|");
Run Code Online (Sandbox Code Playgroud)
如果我使用单斜杠:
str.split("\|");
Run Code Online (Sandbox Code Playgroud)
编译器给出错误:
无效的转义序列(有效的是 \b \t \n \f \r \" \' \ )
谁能解释一下为什么会发生这种情况?谢谢!
反斜杠\是一个特殊字符。在 Java 世界中,它用于对字符进行转义。
管道|是正则表达式世界中的一个特殊字符,表示“或”。
要将管道用作分隔符,您需要对其进行转义(以便在正则表达式解析期间可以识别它),因此您需要在正则表达式中获取它:\|。
但由于反斜杠是 Java 中的一个特殊字符,并且您使用的是 String 对象,因此您必须对反斜杠进行转义,以便将其解释为最终预期的最终结果: \|
为此,您只需使用另一个反斜杠转义反斜杠: \\|
第一个反斜杠转义第二个反斜杠(java 要求),后者转义管道(正则表达式要求)。
| 归档时间: |
|
| 查看次数: |
1497 次 |
| 最近记录: |