4

我有以下代码来拆分字符串:

String s = "100$ali$Rezaie" ;
String[] ar = s.split("$") ;

但它不起作用。为什么?

感谢您的任何建议。

4

3 回答 3

13

因为public String[] split(String regex)接受正则表达式作为参数而不是字符串。

$是具有特殊含义的元字符。

你应该逃避这个$\\$

通过转义这一点,您将被视为splitString不是Regex。请注意,转义 String 是由 完成的,但在 Java中被写为.$ $ $
\\\\

替代解决方案是使用Pattern#quote"返回指定 String 的文字模式 String

String[] ar = s.split(Pattern.quote("$"))

于 2013-10-17T11:33:24.157 回答
6

split将正则表达式作为参数。$是一个元字符,用作匹配 a 结尾的锚点String。字符应该被转义以在文字上拆分$ String

String[] ar = s.split("\\$");
于 2013-10-17T11:33:41.170 回答
5

split将正则表达式作为参数。

public String[] split(String regex)

围绕给定正则表达式的匹配拆分此字符串。

你需要逃离这个$标志。

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

你需要说\\,因为\也需要逃避!

于 2013-10-17T11:34:44.537 回答