为什么String.split(“$”)不起作用?

时间:2012-11-04 12:27:33

标签: java string split

我有三个部分的字符串,每个部分由$符号分隔 例如,

String s = "abc$efg$xyz";

现在,我使用split方法将其拆分为:

String values[] = s.split("$");

values数组包含整个字符串作为单个元素。

但是当我使用它时:

String values[]=s.split("\\$");

它完全符合我的意思 现在,values数组分别在索引0,1和2上包含abcefgxyz

我想知道为什么第一个split无效,因为我在使用split

分割a single white space时使用了类似的split(" ");

3 个答案:

答案 0 :(得分:13)

因为字符$是正则表达式中用于标记行尾的保留标记。这就是为什么你必须使用\\ 逃避它

答案 1 :(得分:7)

String.split采用正则表达式。

正则表达式中的

$表示字符串的nd,因此如果要匹配文字$字符,则需要将其转义。

答案 2 :(得分:0)

$示例中显示的是正则表达式,表示在java

中的正则表达式中使用的字符串的结尾

用于

$   Checks if a line end follows

因此你要使用\\