我在做一个简单的代码
String splitString = "122$23$56$rt";
for(int i=0;i<splitString.split("$").length;i++){
System.out.println("I GOT IS :: "+splitString.split("$")[i]);
}当我分开的时候
splitString.split("$")它给了我输出[122$23$56$rt]
为什么这不是'$‘上的夹板?
发布于 2014-03-06 06:52:08
String.split()采用正则表达式作为参数,$是Java regex API中的元字符。因此,您需要逃避它:
String splitString = "122$23$56$rt";
for(int i=0;i<splitString.split("\\$").length;i++){
System.out.println("I GOT IS :: "+splitString.split("\\$")[i]);
}Java regex API支持的其他元字符包括:<([{\^-=!|]})?*+.>
发布于 2014-03-06 06:52:33
split(Pattern.quote("$"))是我最喜欢的。
返回指定字符串的文字模式字符串。
您的代码不能工作,因为$在regex中有特殊的含义,而且由于String#split接受正则表达式作为参数,所以$不是被解释为字符串"$",而是被解释为特殊的元字符 $。
发布于 2014-03-06 06:52:05
逃离它。split()方法接受regex:split("\\$")
https://stackoverflow.com/questions/22217176
复制相似问题