我正在寻找最有效的 Java 方法,它可以让我“删除嵌入的字符串”。例如,如果我有字符串"Bob said \"Hello world!\"."
,并且我在其上调用方法,结果应该是:"Bob said ."
。帮助将不胜感激!
请注意,我希望这种方法是通用的,这样如果 Bob 说除了“hello world”之外的其他内容,它仍然可以工作。
你可以试试
String string = "Bob said \"Hello world!\".";
string = string.replaceAll("\"[^\"]+\"", "");
如果您只想删除第一个引用的文本,请使用 replaceFirst。
只需使用正则表达式:
String newString = string.replaceAll("\"[^\"]*\"","");
使用正则表达式来完成此操作。
private String removeSubStrings(String s) {
return s.replaceAll("\"[^\"]*\"", "");
}
调用 removeSubStrings("Bob said \"Hello world!\".") 将产生Bob said .
假设字符串中有偶数个\"
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();
}