【问题标题】:Removing specific double quotes from a string in Java [closed]从Java中的字符串中删除特定的双引号[关闭]
【发布时间】:2019-05-11 02:08:48
【问题描述】:

我有一个字符串,我想去掉字符串中的多个双引号,因为我想将它作为字符串传递给字段。

例如:

String input = """greeen"" apple juice"

它应该打印出来。

String output = ""greeen" apple juice"

请提出任何简单的解决方案,因为在输入字符串中有多种可能性,并且我需要保留它们的个别出现。

谢谢!

【问题讨论】:

  • 到目前为止你有什么尝试?
  • Java 中的字符串是用双引号括起来的字符序列。在你的输出中它将如何成为字符串?
  • @ASR 我不关心结束引号。他们没关系,因为它需要是字符串。字符串中两个或多个双引号的多种可能性以及我需要省略的单个条目。

标签: java regex string quotes


【解决方案1】:

添加+量词,表示“一个或多个”:

//use    .replaceAll("(\")+", "\"");
input = input.replaceAll("(\")+", "\"");

【讨论】:

  • 使用 {2,} 而不是 + 是一种轻微的优化,因为在恰好一个引号的情况下,您将不必要地将 " 替换为 "
【解决方案2】:

一种简单的方法是使用正则表达式替换将多个引用 "{2,} 替换为仅一个 "

String output = input.replaceAll("\"{2,}", "\"");

【讨论】:

  • 不,这不起作用。我以前试过。它仍然给了我相同的字符串 --> """green"" apple juice"。
  • @amar19 抱歉,replace 是文字替换。它应该是replaceAll,这是一个正则表达式替换。我已经编辑了我的答案。
  • 是的,我也试过用 replaceAll,但是输出字符串是 --> [ "green" apple juice" ],引号不是我所期望的。你能告诉我怎么能得到字符串开头的双引号像这样 --> [""green" apple juice" ]。字符串稍后处理,因此引号需要同时具有开始和结束。
猜你喜欢
  • 2013-10-19
  • 1970-01-01
  • 1970-01-01
  • 2015-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多