【问题标题】:replaceAll function not working while removing special characterreplaceAll 功能在删除特殊字符时不起作用
【发布时间】:2014-01-26 09:06:28
【问题描述】:

我正在处理一个通过 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。

【问题讨论】:

    标签: android json string replace


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

      用“\”转义元字符“:

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

      你应该使用 replace() 代替:

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

      【讨论】:

      • 感谢您提供的信息。但它仍然不适用于\'。反正我的查询被清除了。
      猜你喜欢
      • 2013-11-10
      • 2012-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多