Replace不是在java中替换双引号
我有一个来自应用程序的字符串:Replace不是在java中替换双引号,java,replace,Java,Replace,我有一个来自应用程序的字符串: 酒店“最低保证价”条款和条件 我试图用以下行替换上述语句中的双引号: Tempdata = Tempdata.replace("\"", ""); System.out.println(Tempdata); 它不起作用并且总是返回相同的值,但是如果我手动删除上面的双引号并手动输入双引号,然后尝试相同的命令,它就可以正常工作 手动替换双引号后,字符串如下所示 酒店“最低保证价”条款和条件 我们可以看到双引号中有细微的差别。看起来来自应用程序的双引号是utf-8
酒店“最低保证价”条款和条件
我试图用以下行替换上述语句中的双引号:
Tempdata = Tempdata.replace("\"", "");
System.out.println(Tempdata);
它不起作用并且总是返回相同的值,但是如果我手动删除上面的双引号并手动输入双引号,然后尝试相同的命令,它就可以正常工作
手动替换双引号后,字符串如下所示
酒店“最低保证价”条款和条件
我们可以看到双引号中有细微的差别。看起来来自应用程序的双引号是utf-8
谢谢你的帮助。谢谢您可以将双引号复制到替换中,相应的代码是
\u201c
和\u201d
或者,您可以使用正则表达式,如[\”'\u2018\u2019\u201c\u201d]
来匹配所有引号。(但这些字符经常被误用为引号。我在看您,`grave and acute'))
在哪里
匹配“
”
匹配”
”
匹配\u2018
(左单引号)”
匹配\u2019
(右单引号)”
匹配\u201c
(左双引号)“
匹配\u201d
(右双引号)“
String.replaceAll()
:
或者,如果需要经常执行此操作,则编译模式并保存会更有效:
在你们班的某个地方:
private final Pattern quotation = Pattern.compile("[\"'\u2018\u2019\u201c\u201d]")
然后再往下走:
quotation.matcher(tempdata).replaceAll("")
另一个不相关的注意事项是,不要在Java中给变量取大写名称,这会灼伤我的眼睛,违反所有常见的惯例。给变量取与类相同的名称是非常有害的。您可以将双引号复制到替换中,相应的代码是
\u201c
和\u201d
或者,您可以使用正则表达式,如[\”'\u2018\u2019\u201c\u201d]
来匹配所有引号。(但这些字符经常被误用为引号。我看着你,`严肃而尖锐')
在哪里
匹配“
”
匹配”
”
匹配\u2018
(左单引号)”
匹配\u2019
(右单引号)”
匹配\u201c
(左双引号)“
匹配\u201d
(右双引号)“
String.replaceAll()
:
或者,如果需要经常执行此操作,则编译模式并保存会更有效:
在你们班的某个地方:
private final Pattern quotation = Pattern.compile("[\"'\u2018\u2019\u201c\u201d]")
然后再往下走:
quotation.matcher(tempdata).replaceAll("")
另一方面,不要在Java中给变量起大写的名字,这会灼伤我的眼睛,违反所有的常规。给它们起一个与类相同的名字是非常有害的。为什么不替换所有类型的双引号
Tempdata.replace(“\”,”).replace(“,”)…replace(“,”);
为什么不保留数据的原样?谢谢TT。您的解决方案正在运行:)为什么不替换所有类型的双引号?Tempdata.replace(“\”,”).replace(“,”)…replace(“,”)代码>为什么?为什么不按原样保存数据呢?谢谢。你的解决方案是有效的:)我以为这肯定是我问题的答案,但它不起作用。我正在处理jsp模板中的表单字段。输入有时有“”,但也可能有愚蠢的“”,这里你看不出来的是“卷曲”双引号(\201c和\u201d)。(血腥的窗口)。提交表单后,字段数据在参数处理程序中变成字符串,它显示为“?”?,如何转义出现的这些卷曲双引号???使用:formfieldstring.replace('\u201c',“\”):根本不起作用。很明显,替换需要两个字符。否则,您的问题听起来像是编码问题。也许这会有所帮助:我认为这肯定是我问题的答案,但它不起作用。我正在jsp模板中处理表单字段。输入有时有“”,但也可能有“”的愚蠢之处这里你看不出来的是“卷曲”双引号(\201c和\u201d)。(血腥的窗口)。提交表单后,字段数据在参数处理程序中变成字符串,它显示为“”,如何转义这些卷曲双引号的出现???使用:formfieldstring.replace('\u201c',“\”):根本不起作用。很明显,替换需要两个字符。否则,您的问题听起来像是编码问题。这可能会有帮助: