ホームページ  >  記事  >  Java  >  Java で「toString()」が配列を人間が判読できる文字列に変換できないのはなぜですか?

Java で「toString()」が配列を人間が判読できる文字列に変換できないのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-16 04:37:03523ブラウズ

Why Does `toString()` Fail to Convert Arrays to Human-Readable Strings in Java?

toString() メソッドが配列に不足している理由

Java では、toString() メソッドはオブジェクトを配列に変換する便利なツールです。人間が読める文字列表現。ただし、配列に適用すると、奇妙な動作をする可能性があります。

問題:

toString() を使用して文字配列を文字列に変換しようとすると、Java は変換しません。期待される出力を提供します。代わりに、括弧、配列の要素タイプを表す文字 (char の場合は「C」)、および数値ハッシュ コード (「[C@e53108」) を含む紛らわしい文字列が生成されます。

:

配列に対する Java のデフォルトの toString() 実装は、配列の型とその「アイデンティティ ハッシュ コード」(メモリ内の配列オブジェクトの一意の識別子) を返すように設計されています。この情報は主にデバッグ目的に役立ち、人間による消費を目的としたものではありません。

解決策:

人間が判読できる配列表現を取得するために、Java はArrays.toString() と呼ばれる代替メソッド。このメソッドは、配列要素をカンマ区切りの文字列に変換し、よりアクセスしやすい出力を提供します。

コード例では、次の変更により問題が解決されます。

System.out.println(Arrays.toString(Array));

配列を使用する。 toString() を実行すると、出力は期待どおり、意味不明な内容なく正しく「abcdef」を返すようになりました。

歴史的な間違いですか?

配列に対する Java のデフォルトの toString() 動作混乱を招き、直感的でない可能性があるため、「間違い」として批判されることがよくあります。一部の開発者は、Arrays.toString().

と同様に、デフォルトでより意味のある方法で配列の要素を返すべきだったと主張しています。

以上がJava で「toString()」が配列を人間が判読できる文字列に変換できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。