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

Java 为什么String.split($)不起作用?,java,string,split,Java,String,Split,我有三个部分的字符串,每个部分用$symbol分隔 比如说, String s = "abc$efg$xyz"; 现在,当我使用如下拆分方法拆分它时: String values[] = s.split("$"); 它将值数组作为单个元素包含整个字符串 但当我使用这个: String values[]=s.split("\\$"); 它完全符合我的意思 现在,值数组分别包含索引0、1和2上的abc、efg和xyz 我想知道为什么第一次拆分不起作用,因为我在使用split在单个空白处拆分时使

我有三个部分的字符串,每个部分用$symbol分隔 比如说,

String s = "abc$efg$xyz";
现在,当我使用如下拆分方法拆分它时:

String values[] = s.split("$");
它将值数组作为单个元素包含整个字符串

但当我使用这个:

String values[]=s.split("\\$");
它完全符合我的意思 现在,值数组分别包含索引0、1和2上的abc、efg和xyz

我想知道为什么第一次拆分不起作用,因为我在使用split在单个空白处拆分时使用了类似的拆分

String.split采用正则表达式

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

string.split采用正则表达式


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

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

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

$对其进行转义。示例中显示的$在正则表达式中表示java正则表达式中使用的字符串结尾

它是用来

$   Checks if a line end follows

因此,您必须使用\\

$,如示例中所示,它位于正则表达式中,表示java正则表达式中使用的字符串结尾

它是用来

$   Checks if a line end follows

因此,您必须使用\\

为什么否决投票我对正则表达式不太了解,所以我在搜索了有关的问题后在这里问了这么多?\BTW模式。quote$是正则表达式更安全的转义机制。为什么否决投票我对正则表达式不太了解,所以我在搜索了有关问题后在这里问了这么多?\BTW模式。quote$是更安全的转义机制正则表达式的机制。