「埋め込まれた文字列を削除する」ことができる最も効率的なJavaメソッドを探しています。たとえば、文字列"Bob said \"Hello world!\"."
があり、その上でメソッドを呼び出すと、結果は次のようになります"Bob said ."
。助けていただければ幸いです!
この方法を一般的にしたいので、Bobが「helloworld」以外のことを言っても機能することに注意してください。
あなたが試すことができます
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();
}