我有以下代码来拆分字符串:
String s = "100$ali$Rezaie" ;
String[] ar = s.split("$") ;
Run Code Online (Sandbox Code Playgroud)
但它不起作用.为什么?
谢谢你的任何建议.
Mar*_*oun 13
因为public String[] split(String regex)接受Regex作为参数而不是String.
$是一个具有特殊意义的元字符.
你应该逃避这个$:\\$.
通过逃避这个,你告诉split对待$的字符串 $,而不是正则表达式 $.
请注意,转义字符串是通过完成的\,但在Java \中写为\\.
替代解决方案是使用Pattern#quote" 返回指定字符串的文字模式字符串:
String[] ar = s.split(Pattern.quote("$"))
split以正则表达式为参数.$是一个元字符,用作匹配结尾的锚点String.角色应该转义为文字分割$ String
String[] ar = s.split("\\$");
Run Code Online (Sandbox Code Playgroud)
split 以正则表达式为参数.
public String[] split(String regex)将此字符串拆分为给定正则表达式的匹配项.
你需要逃离$标志.
String[] ar = s.split("\\$")
Run Code Online (Sandbox Code Playgroud)
你需要说\\因为\需要逃脱!