0

我正在寻找最有效的 Java 方法,它可以让我“删除嵌入的字符串”。例如,如果我有字符串"Bob said \"Hello world!\".",并且我在其上调用方法,结果应该是:"Bob said ."。帮助将不胜感激!

请注意,我希望这种方法是通用的,这样如果 Bob 说除了“hello world”之外的其他内容,它仍然可以工作。

4

4 回答 4

8

你可以试试

String string = "Bob said \"Hello world!\".";
string = string.replaceAll("\"[^\"]+\"", "");

如果您只想删除第一个引用的文本,请使用 replaceFirst。

于 2012-06-13T14:40:03.393 回答
2

只需使用正则表达式:

String newString = string.replaceAll("\"[^\"]*\"","");
于 2012-06-13T14:40:23.787 回答
1

使用正则表达式来完成此操作。

    private String removeSubStrings(String s) {
        return s.replaceAll("\"[^\"]*\"", "");
    }

调用 removeSubStrings("Bob said \"Hello world!\".") 将产生Bob said .

于 2012-06-13T14:43:36.293 回答
0

假设字符串中有偶数个\"s,您可以使用如下内容:

private String deleteEmbedded(String input) {
    String[] split = input.split("\"");
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < split.length; i+=2) {
        sb.append(split[i]);
    }
    return sb.toString();
}
于 2012-06-13T14:41:37.793 回答