1

Eclipseを使用してJavaで開発しているときに、ブレークポイントでString変数の値を表示したいと思います。

文字列変数はとして表示されます[47, 110, 109, 107, 111]。これは、文字列が実際にはASCII文字の配列であるため意味があります。

ただし、文字列を調べるたびにASCII値から文字に変換する必要はありません。ASCII値の配列ではなく文字列をデバッガーに表示させるにはどうすればよいですか?

4

3 に答える 3

1

string文字列オブジェクトの新しいインスタンスを作成して、正しいエンコーディングで配列をに変換してみてください。

String s = new String(bytes,"ASCII");
System.out.println(s);

これがデモンストレーションする短い例です:

    String example = "This is an example";
    byte[] bytes = example.getBytes();

    System.out.println("Text : " + example);
    System.out.println("Text [Byte Format] : " + bytes);
    System.out.println("Text [Byte Format] : " + bytes.toString());

    String s = null;
    try {
        s = new String(bytes, "ASCII");
    } catch (UnsupportedEncodingException ex) {
        Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
    }
    System.out.println("Text from bytes: " + s);

出力:

テキスト:これは例です

テキスト[バイト形式]:[B @ 187aeca

テキスト[バイト形式]:[B @ 187aeca

バイトからのテキスト:これは例です

参照:

于 2012-08-21T18:19:14.247 に答える
1

変数が文字列であることが確実な場合:

MyString

デバッグビューは、それを文字列として自動的に表示する必要があります。

DebugView

変数が実際に文字列であることを確認してください。

于 2012-08-21T18:53:15.727 に答える
-1

私は以前そのような状況にありました。デバッグ中にEclipseバージョンで問題が発生したと思います。古いバージョンの日食またはIntelliJ(2018)およびjdk 8に変更した後、=>問題は解決しました。

于 2020-09-29T04:01:31.383 に答える