我一直在尝试从字符串数组中删除特定字符,但仍然会失败。 char是“$”,我不知道我做错了什么,所以希望有人能够指出正确的方向,我的代码:
for (int y = 0; y<possibleAnswers.length;y++) {
display = possibleAnswers[y].replaceAll("$", "");
System.out.println(display);
}
possibleAnswers包含4个字符串,其中4个字符串为“$”,我想在显示之前将其删除。
当我运行上面的代码时,显示“$”,任何想法?
答案 0 :(得分:3)
您的代码存在的问题是replaceAll()
需要“正则表达式”。在正则表达式中使用时,$字符具有特定含义。因此,您有两种选择:
replaceAll()
;那么你必须“逃避特殊性格”;使用replaceAll("\\$", "")
或“[$]”,正如其他人所指出的那样。replace()
。答案 1 :(得分:2)
replaceAll()
接受正则表达式,而不只是一个字符。当你说&#34; $&#34;时,你并没有告诉它匹配&#39; $&#39;字符,但匹配字符串的结束位置或字符串结束前的换行符之前。
你需要逃避&#39; $&#39;,所以它知道只匹配角色,而不是像它的特殊正则表达式那样对待它。
这样做:possibleAnswers[y].replaceAll("\\$", "");
答案 2 :(得分:1)
尝试
possibleAnswers[y].replaceAll("\\$", "");
转义字符,因为$
是正则表达式中的特殊字符,并且replaceAll()
采用正则表达式,因此传递的字符串无法识别。
您还可以使用带有字符串
的replace()
possibleAnswers[y].replace("$", "");
答案 3 :(得分:1)
在您的代码中,$
keyword
为regex
,以匹配end of line
,即$。因此,您必须escape
如下所示。
display = possibleAnswers[y].replaceAll("\\$", "");
答案 4 :(得分:1)
只需使用possibleAnswers [y] .replace(&#34; $&#34;,&#34;&#34;);删除&#34; $&#34;来自字符串。
答案 5 :(得分:0)
for (int y = 0; y < possibleAnswers.length; y++) {
display = possibleAnswers[y].replace("$", "");
System.out.println(display);
}
正如所建议的,我使用replace方法而不是replaceAll,它完成了这项工作。与此同时,我学会了阅读文档,以便更深入地理解这些方法。
感谢所有帮助人员,真的很感激。