删除特殊字符时,replaceAll函数不起作用

时间:2014-01-08 10:17:49

标签: android json string replace

我正在使用一个项目,通过JSON解析检索一些数据。不幸的是,无效的字符“\”会逃脱。我需要删除它们。我试着打电话给.replace("\\'","\");。此解决方案无效。不会抛出任何异常,但字符串不会更改。这是我的代码:

shop_name = c.getString(TAG_SHOP_NAME);
if(shop_name.contains("\\'")==true)
{
//try{
shop_name=shop_name.replaceAll(Pattern.quote("\\'"), "'");
Log.e("vvvvvv","new shop name: "+shop_name);}
//catch(Exception q){Log.e(TAG+" vvvv","EXPTN",q);}
}

send JSON object is: Bimal\'s

required object: Bimal's

请告诉我是否在某处出错或者除了replaceAll之外还有其他方法。

2 个答案:

答案 0 :(得分:2)

你需要双重转义反斜杠,因为它是字符串和正则表达式中的转义字符:

shop_name.replaceAll("\\\\'", "'");

或者不使用正则表达式(因为在这种情况下不需要):

shop_name.replace("\\'", "'");

答案 1 :(得分:2)

使用“\”:

转义元字符“

string.replaceAll(“\”“,”“); 请记住将其分配回String引用,因为它返回一个新的String对象。

您应该使用replace()代替:

str = str.replace(“\”“,”“); replaceAll()用于替换正则表达式。