Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Replace不是在java中替换双引号_Java_Replace - Fatal编程技术网

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',“\”):根本不起作用。很明显,替换需要两个字符。否则,您的问题听起来像是编码问题。这可能会有帮助: