为什么$不适用于拆分方法?

时间:2013-10-17 11:32:53

标签: java string

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

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

但它不起作用。为什么?

感谢您的任何建议。

3 个答案:

答案 0 :(得分:13)

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

$meta-character,具有特殊含义。

您应该转义此$\\$

通过转发此操作,您告诉split$视为字符串 $而不是正则表达式 { {1}}。
请注意,转义字符串是由$完成的,但在Java \中写为\

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

\\

答案 1 :(得分:6)

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

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

答案 2 :(得分:5)

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

  

public String[] split(String regex)

     

将此字符串拆分为给定正则表达式的匹配项。

您需要转义$标志。

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

您需要说\\,因为\也需要转义!