我有以下代码来分割字符串:
String s = "100$ali$Rezaie" ;
String[] ar = s.split("$") ;
但它不起作用。为什么?
感谢您的任何建议。
答案 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("\\$")
您需要说\\
,因为\
也需要转义!