3

次のコードを検討してください。

class Sample{
public static void main(String args[]){
    String text1="C:\Documents\User\sample";

    String text2=text1.replace('\','/');

    System.out.println(text2);
        }
}

text1がファイルパスを受信して​​いる入力があります。ここで、text1のすべての「\」を「/」に置き換えます。上記のコードを使用しました。

まず、表示されるエラーは次のとおりです。「IllegalEscape Sequence」は理解できますが、ユーザーが入力ボックスにパスを入力するJava EEアプリケーションを作成しているため、私の問題ではありません。

しかし、コードを正しく実行するために不可欠な「\」を「/」に変更するのに問題があります。私はこの問題を解決することができません。String.replaceAll()メソッドを使用してみましたが、結果がありません。

4

2 に答える 2

5

バックスラッシュをエスケープする必要があります。

String text2=aa.replace('\\','/');

ちなみに、replaceAll()問題はさらに複雑になります。単純な文字列置換ではなく正規表現を処理しているため、正規表現エンジンではバックスラッシュをもう一度エスケープする必要があります。

String text2=aa.replaceAll("\\\\", "/");
于 2012-09-02T14:30:51.597 に答える
2

\はJava文字列のエスケープ文字です。を実行してエスケープする必要があります。これにより、隣のエスケープ文字\\が防止され、エラーが解決されます。'これにより、コード行が次のようになります。

String text2 = text1.replace('\\', '/');

これは、このキャラクターが通常どのように使用できるかの良い例です

その見た目から、あなたも次のことをしたほうがよいかもしれません:

String text1="C:\\Documents\\User\\sample";

文字列が初期化された後に置き換える代わりに。

于 2012-09-02T14:30:56.433 に答える