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

Abu*_*kar 1 java string split

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

String s = "abc$efg$xyz";
Run Code Online (Sandbox Code Playgroud)

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

String values[] = s.split("$");
Run Code Online (Sandbox Code Playgroud)

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

但是当我使用它时:

String values[]=s.split("\\$");
Run Code Online (Sandbox Code Playgroud)

它完美的作品是什么,我想这意味着
现在的values数组包含abc,efgxyz分别对指数0,1和2.

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

ale*_*nis 13

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


SLa*_*aks 7

String.split 采取正则表达式.

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