删除嵌入字符串

时间:2012-06-13 14:34:06

标签: java string

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

请注意,我希望这个方法一般,这样如果Bob说“hello world”之外的东西,它仍然有效。

4 个答案:

答案 0 :(得分:8)

你可以尝试

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

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

答案 1 :(得分:2)

只需使用正则表达式:

String newString = string.replaceAll("\"[^\"]*\"","");

答案 2 :(得分:1)

使用正则表达式来完成此任务。

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

调用removeSubStrings(“Bob说”“Hello world!\”。“)将产生Bob said .

答案 3 :(得分:0)

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

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();
}