2

次のような巨大な文字列があります。

widgets: '{some-really-huge-string-omitted-for-brevity}'

そして、私が得られるように一重引用符を削除したいと思います:

widgets: {some-really-huge-string-omitted-for-brevity}

実際にsome-really-huge-string-omitted-for-brevityは、英数字、句読点、基本的に太陽の下のすべてを含む巨大な文字列です。これまでの私の最善の試み:

bigString = bigString.replaceAll("widgets: '\\{*\\}'", "widgets: \\{*\\}");

例外/エラーをスローしませんが、何も変更しません! 印刷するbigStringと、交換前と同じです!何か案は?前もって感謝します。

4

3 に答える 3

1

引用符が常にそれらの場所にある場合。(つまり、文字列の9番目と最後の文字)、部分文字列を使用してトリムして再結合します。文字列全体をスキャンするのは遅く、無意味です。

トリミングされた文字列 = hugeString.substring(0, 9) + hugeString.substring(10, hugeString.length() - 1);

更新しました

この回答を受け入れたので、これはより効率的なバージョンになる可能性があります。

StringBuilder b = 新しい StringBuilder(hugeString);
b.deleteCharAt(9);
b.deleteCharAt(b.length() - 1);
トリミングされた文字列 = b.toString();
于 2013-02-15T13:34:09.363 に答える
1
String str = "widgets: '{some-really-huge-string-omitted-for-brevity}'";
System.out.println (str.replaceAll ("'([^']*)'", "$1"));
于 2013-02-15T13:31:58.000 に答える
1
string= string.replace("'", "");

何かを囲む単一引用符をすべて削除したい場合は、上記のコードを試してください。

string= string.replace("'{", "{").replace("}'","}");

開始中括弧「{」および終了中括弧「}」の前に一重引用符を削除する場合。

于 2013-02-15T13:33:09.410 に答える