0

私はひもを持っています。

String invalid = "backslash escaping as <>:;%+\/"."

\シーケンスをエスケープするために追加するようにというエラー メッセージを受け取りました。これを Java で記述しようとすると、バックスラッシュを としてエスケープする必要があることがわかります\\。だから私はそれを次のように書きました:

String invalid = "backslash escaping as <>:;%+\\/\"."

これは次のように表示されますbackslash escaping as <>:;%+\\/".

バックスラッシュはエスケープしていません。バックスラッシュを 1 つだけ取得するにはどうすればよいですか?

4

2 に答える 2

1

あなたの修正に問題はありません。これは期待どおりに実行されます。

    String invalid = "backslash escaping as <>:;%+\\/\".";
    System.out.println(invalid);

    output:
    backslash escaping as <>:;%+\/".

最初の例では、少し問題があります。

\/".

私は次のようになるべきだと信じています:

/\".

最初の方法では、必要な前に文字列を閉じているためです。その部分."が文字列から外れています。

編集: 出力をファイルまたはJTextFieldなどに書き込んでみて、何が起こるかを確認してください。文字列は正しく、出力を私の出力と比較すると同じです。デバッガーに問題がある可能性があります (奇妙ですが、可能性があります)。

于 2013-01-23T15:48:27.527 に答える
0

投稿の2番目の文字列が正しく表示されます。出力の観察方法に問題があるはずです。

可能な限り簡単なことを試してください。

  • 名前の付いたファイルを作成し、Escape.javaその内容に次のコードを書き込みます。

    public class Escape {
    
        public static void main(String... args) {
            String s = "backslash escaping as <>:;%+\\/\".";
            System.out.println(s);
        }
    }
    
  • OSが提供するコマンドラインを開き、上記のソースファイルが含まれるフォルダに移動します。

  • ソースファイルをコンパイルします。

    javac Escape.java
    
  • そして、クラスファイルを実行します。

    java -cp . Escape
    
  • 次の出力が得られるはずです。

    backslash escaping as <>:;%+\/".
    
  • ...まさにあなたが望むものだと私は信じています。

于 2013-01-23T21:28:02.080 に答える