0

「埋め込まれた文字列を削除する」ことができる最も効率的なJavaメソッドを探しています。たとえば、文字列"Bob said \"Hello world!\"."があり、その上でメソッドを呼び出すと、結果は次のようになります"Bob said ."。助けていただければ幸いです!

この方法を一般的にしたいので、Bobが「helloworld」以外のことを言っても機能することに注意してください。

4

4 に答える 4

8

あなたが試すことができます

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

最初の引用テキストのみを削除する場合は、replaceFirst を使用します。

于 2012-06-13T14:40:03.393 に答える
2

正規表現を使用するだけです:

String newString = string.replaceAll("\"[^\"]*\"","");
于 2012-06-13T14:40:23.787 に答える
1

これを行うには、正規表現を使用します。

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

removeSubStrings("Bob said \"Hello world!\".") を呼び出すと、Bob said .

于 2012-06-13T14:43:36.293 に答える
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();
}
于 2012-06-13T14:41:37.793 に答える