我有三个部分的字符串,每个部分由$
符号分隔
例如,
String s = "abc$efg$xyz";
现在,我使用split
方法将其拆分为:
String values[] = s.split("$");
它values
数组包含整个字符串作为单个元素。
但是当我使用它时:
String values[]=s.split("\\$");
它完全符合我的意思
现在,values
数组分别在索引0,1和2上包含abc
,efg
和xyz
。
我想知道为什么第一个split
无效,因为我在使用split
a single white space
时使用了类似的split(" ");
答案 0 :(得分:13)
因为字符$
是正则表达式中用于标记行尾的保留标记。这就是为什么你必须使用\\
逃避它。
答案 1 :(得分:7)
String.split
采用正则表达式。
$
表示字符串的nd,因此如果要匹配文字$
字符,则需要将其转义。
答案 2 :(得分:0)
$示例中显示的是正则表达式,表示在java
中的正则表达式中使用的字符串的结尾用于
$ Checks if a line end follows
因此你要使用\\