1

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

String s = "abc$efg$xyz";

现在,当我使用这样的方法拆分它时split

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

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

但是当我使用这个时:

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

它完美地工作了我想要
的意思,现在values数组包含abc,efgxyz分别在索引 0,1 和 2 上。

我想知道为什么第一个split不起作用,因为我split在拆分a single white space使用时使用了类似的split(" ");

4

3 回答 3

13

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

于 2012-11-04T12:29:13.590 回答
7

String.split接受一个正则表达式。

$在正则表达式中表示字符串的 nd,因此如果要匹配文字$字符,则需要对其进行转义。

于 2012-11-04T12:29:07.690 回答
0

您的示例中显示的 $ 在正则表达式中表示 Java 中正则表达式中使用的字符串结尾

它用于

$   Checks if a line end follows

因此你必须使用 \\

于 2012-11-04T13:17:27.847 回答