我正在寻找能够让我“删除嵌入字符串”的最有效的Java方法。例如,如果我有字符串"Bob said \"Hello world!\"."
,并且我在其上调用方法,则结果应为:"Bob said ."
。帮助将不胜感激!
请注意,我希望这个方法一般,这样如果Bob说“hello world”之外的东西,它仍然有效。
答案 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();
}