【问题标题】:Replace \ from string用字符串替换 \
【发布时间】:2021-05-11 06:39:57
【问题描述】:

我想从下面的字符串中删除“”,为此我正在使用

String orderDetailsDb =  "[{\"productId\":\"2814ff15-2fcf-4dc8-bf90-032e77a73e6b \",\"productName\":\"Garlic Oil 30 Capsules\",\"quantity\":6,\"price\":63.06,\"discount\":0,\"discountedPrice\":63.06,\"rowPrice\":\"\",\"gtinCode\":\"9324917000603\",\"accountNumber\":\"50138\",\"isPromo\":\"\"}]"

orderDetailsDb.replaceAll("\\", "");

但这是在扔

java.util.regex.PatternSyntaxException: Unexpected internal error near index 1
\
 ^
        at java.util.regex.Pattern.error(Unknown Source)
        at java.util.regex.Pattern.compile(Unknown Source)
        at java.util.regex.Pattern.<init>(Unknown Source)
        at java.util.regex.Pattern.compile(Unknown Source)

【问题讨论】:

  • 字符串文字周围的方括号是什么?这不是有效的 Java。
  • 那些反斜杠实际上并不存在,它们只是可见以转义 Java 字符串文字中的双引号。
  • "\\" 不代表有效的Java 正则表达式。

标签: java pattern-matching


【解决方案1】:

如果你想删除字符串中的 " 你可以替换 " 但你必须转义它,因为它当然会关闭你参数中的字符串。

orderDetailsDb.replaceAll("\"", "")

或者更好的使用只是替换

orderDetailsDb.replace("\"", "")

因为replaceAll在内部使用了正则表达式,这里不需要正则表达式。

你的字符串中的 \ " 不存在,它们只是用来转义 "

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-23
    • 1970-01-01
    • 2023-03-04
    • 2011-06-13
    • 2013-05-01
    • 2020-08-31
    • 2014-08-31
    相关资源
    最近更新 更多