2

オラクルの翻訳機能と同じように動作するJavaの同等の文字列関数またはライブラリはありますか?

オラクルでは、これを行うことができます:

select translate(
 '23423k!(dfgd){sdf};',
 '(){}k!',
 '{}()'
 ) from dual;

これを取得するには:

23423{dfgd}(sdf);

しかし、Javaでこれを行った場合:

    String a="23423k!(dfgd){sdf};";
    String b=a
        .replace("(", "{")
        .replace(")", "}")
        .replace("{", "(")
        .replace("}", ")")
        .replace("!", "")
        .replace("k", "")
        ;
    System.out.println("ori:"+a);
    System.out.println("mod:"+b);

私はこれを得る:

ori:23423k!(dfgd){sdf}; 
mod:23423(dfgd)(sdf);
4

3 に答える 3

3

Apache commons-Lang ライブラリには、まさにこれを行うStringUtils.replaceChars()ユーティリティ メソッドがあります。

Java は次のように述べています。

String 内の複数の文字を一度に置き換えます。このメソッドは、文字の削除にも使用できます。通常、検索文字の長さは、置換文字の長さと等しくなければなりません。検索文字が長い場合、余分な検索文字は削除されます。

于 2012-11-16T02:34:40.560 に答える
0
String a="23423k!(dfgd){sdf};";
    String b=a
        .replace("(d", "{d")
        .replace("d)", "d}")
        .replace("{s", "(s")
        .replace("f}", "f)")
        .replace("!", "")
        .replace("k", "")
        ;

これは機能しますが、正しい方法ではありません。String.replace() または StringBuffer クラスの使用を見てください。

于 2012-11-16T02:27:46.037 に答える
0

文字列に一致する正規表現を作成し、関心のある部分文字列をキャプチャしてから、文字列連結を使用して適切なボイラープレートを追加します

于 2012-11-16T02:30:27.543 に答える