2012-06-13 77 views
0

我正在尋找最有效的Java方法,可以讓我'刪除嵌入的字符串'。例如,如果我有字符串"Bob said \"Hello world!\".",並且我調用它的方法,結果應該是:"Bob said ."。幫助將不勝感激!刪除嵌入的字符串

請注意,我希望此方法爲常規,這樣如果Bob說「除了」hello world「之外的東西,它仍然可以工作。

+2

您是否在尋找任何嵌入的字符串或只是 「世界,你好!」 ? –

+0

該方法可以返回一個字符串。是的,任何嵌入的字符串。 – arshajii

回答

8

您可以嘗試

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

使用replaceFirst如果你只是要刪除的第一次報文。

2

只需使用正則表達式:

String newString = string.replaceAll("\"[^\"]*\"",""); 
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(); 
} 
1

使用正則表達式來做到這一點。

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

調用removeSubStrings( 「鮑勃說:\」 世界,你好!\ 「」)將產生Bob said .