安卓。替换字符串中的 * 字符
Posted
技术标签:
【中文标题】安卓。替换字符串中的 * 字符【英文标题】:Android. Replace * character from String 【发布时间】:2013-01-13 11:37:09 【问题描述】:我有一个字符串变量,其中包含“*”。但在使用它之前,我必须替换所有这些字符。
我尝试了 replaceAll 功能但没有成功:
text = text.replaceAll("*","");
text = text.replaceAll("*",null);
有人可以帮我吗?谢谢!
【问题讨论】:
【参考方案1】:为什么不直接使用String#replace()
方法,它不使用regex
作为参数:-
text = text.replace("*","");
相反,String#replaceAll()
将正则表达式作为第一个参数,并且由于 *
是正则表达式中的 元字符,因此您需要对其进行转义,或者在字符类中使用它.所以,你的做法是:-
text = text.replaceAll("[*]",""); // OR
text = text.replaceAll("\\*","");
但是,你真的可以在这里使用简单的替换。
【讨论】:
但是如果 String 有超过 1 个字符,它会删除所有 * 吗? @arhimed。是的,当然它会删除所有这些。只需在您的示例字符串上尝试一下。【参考方案2】:你可以简单地使用String#replace()
text = text.replace("*","");
String.replaceAll(regex, str) 将正则表达式作为第一个参数,因为*
是一个元字符,您应该使用反斜杠对其进行转义以将其视为普通字符。
text.replaceAll("\\*", "")
【讨论】:
【参考方案3】:试试这个。
您需要为正则表达式转义 *
,使用 .
text = text.replaceAll("\\*","");
【讨论】:
以上是关于安卓。替换字符串中的 * 字符的主要内容,如果未能解决你的问题,请参考以下文章
java 替换文本中的所有指定的字符串,比如#*替换为sq, #**替换为we, 我使用了replaceAll进行的替换