我正在使用一个项目,通过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之外还有其他方法。
答案 0 :(得分:2)
你需要双重转义反斜杠,因为它是字符串和正则表达式中的转义字符:
shop_name.replaceAll("\\\\'", "'");
或者不使用正则表达式(因为在这种情况下不需要):
shop_name.replace("\\'", "'");
答案 1 :(得分:2)
使用“\”:
转义元字符“string.replaceAll(“\”“,”“); 请记住将其分配回String引用,因为它返回一个新的String对象。
您应该使用replace()代替:
str = str.replace(“\”“,”“); replaceAll()用于替换正则表达式。