Rumah  >  Artikel  >  Java  >  Mengapakah `Array.toString()` Menghasilkan Output Tidak Dijangka untuk Tatasusunan Aksara di Jawa?

Mengapakah `Array.toString()` Menghasilkan Output Tidak Dijangka untuk Tatasusunan Aksara di Jawa?

DDD
DDDasal
2024-11-24 05:25:10976semak imbas

Why Does `Array.toString()` Produce Unexpected Output for Character Arrays in Java?

Output Tidak Dijangka daripada Array.toString()

Di Java, kaedah toString() biasanya digunakan untuk menukar tatasusunan kepada manusia -perwakilan rentetan yang boleh dibaca. Walau bagaimanapun, dalam kes tatasusunan aksara, pelaksanaan lalai toString() menjana output yang tidak dijangka, yang muncul sebagai jujukan rawak aksara.

Isu ini timbul kerana kaedah lalai toString() yang dilaksanakan untuk tatasusunan mengembalikan kod cincang identiti tatasusunan, dilambangkan dengan "[C@diikuti dengan nombor heksadesimal. Perwakilan ini berguna untuk tujuan penyahpepijatan, tetapi bukan untuk manusia penggunaan.

Penyelesaian: Menggunakan Arrays.toString()

Untuk mendapatkan perwakilan rentetan yang boleh dibaca manusia bagi tatasusunan aksara, anda perlu menggunakan Arrays.toString( ) kaedah sebaliknya secara khusus mengendalikan tatasusunan aksara dan menukarnya kepada rentetan yang mengandungi semua aksara dalam tatasusunan.

Di bawah ialah coretan kod yang dikemas kini yang menunjukkan cara menggunakan Arrays.toString():

import java.util.Arrays;

class ToString {
    public static void main(String[] args) {
        char[] array = {'a', 'b', 'c', 'd', 'e', 'f'};
        System.out.println(Arrays.toString(array));
    }
}

Kod ini akan mencetak output yang dijangkakan: "abcdef".

Penjelasan

Kaedah Arrays.toString() direka khusus untuk mengendalikan tatasusunan pelbagai jenis, termasuk tatasusunan aksara. Ia berulang melalui tatasusunan, menambahkan setiap aksara pada rentetan yang terhasil. Proses ini menghasilkan perwakilan rentetan yang boleh dibaca manusia bagi tatasusunan.

Sebab bagi Gelagat Lalai

Pelaksanaan toString() lalai untuk tatasusunan bertujuan untuk memberikan ringkasan perwakilan tatasusunan untuk tujuan nyahpepijat. Dengan memaparkan kod cincang identiti, ia membolehkan pembangun mengenal pasti lokasi memori tatasusunan dengan cepat dan membezakannya daripada tatasusunan lain.

Walau bagaimanapun, perwakilan ini tidak praktikal untuk memaparkan kandungan tatasusunan kepada pengguna atau untuk gunakan dalam senario di mana perwakilan rentetan bertujuan untuk dibaca atau diproses.

Atas ialah kandungan terperinci Mengapakah `Array.toString()` Menghasilkan Output Tidak Dijangka untuk Tatasusunan Aksara di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn