Rumah > Java > javaTutorial > Mengapa Kod Java Saya Menukarkan Integer kepada Aksara Tidak Boleh Dicetak?

Mengapa Kod Java Saya Menukarkan Integer kepada Aksara Tidak Boleh Dicetak?

Susan Sarandon
Lepaskan: 2024-11-10 03:07:02
asal
1035 orang telah melayarinya

Why Does My Java Code Convert an Integer to an Unprintable Character?

Menukar Integer kepada Aksara dalam Java: Perbandingan

Memahami penukaran aksara dan integer dalam Java boleh menjadi rumit. Mari kita periksa coretan kod berikut:

int a = 1;
char b = (char) a;
System.out.println(b);
Salin selepas log masuk

Dijangkakan, kod ini sepatutnya mencetak aksara '1'. Walau bagaimanapun, ia menghasilkan output kosong. Untuk memahami perkara ini, kita perlu mendalami proses penukaran jenis.

Tugasan char b = (char) a menukarkan integer a (iaitu nombor 1) kepada aksara. Penukaran ini sebenarnya menyimpan aksara dengan titik kod Unicode yang sepadan dengan nilai integer. Sebagai contoh, titik kod Unicode untuk '1' ialah 49, manakala titik kod Unicode untuk aksara permulaan tajuk ialah 1. Oleh kerana integer a ialah 1, ia akan ditukar kepada aksara permulaan tajuk, yang tidak boleh dicetak.

Sebaliknya, coretan kod berikut:

int a = '1';
char b = (char) a;
System.out.println(b);
Salin selepas log masuk

Menghasilkan output yang dijangkakan '1'. Ini kerana tugasan int a = '1' memulakan a dengan nilai ASCII '1' (iaitu 49) dan bukannya nilai integer 1.

Untuk menukar integer kepada aksara seperti yang dimaksudkan dalam coretan pertama, anda boleh menggunakan pendekatan berikut:

  • Gunakan Kaedah Character.forDigit(): Ini menukar digit antara 0 dan 9 kepada aksara yang sepadan.

    int a = 1;
    char b = Character.forDigit(a, 10);
    System.out.println(b); // Prints '1'
    Salin selepas log masuk
  • Tambah 48 pada integer dan hantar: Pendekatan ini bergantung pada fakta bahawa mata kod Unicode untuk digit adalah 48 lebih tinggi daripada digit nilai.

    int a = 1;
    char b = (char) (a + 48);
    System.out.println(b); // Prints '1'
    Salin selepas log masuk
  • Gunakan kaedah Character.toChars(): Ini menukar titik kod Unicode kepada tatasusunan aksara yang sepadan.

    int a = 1;
    char[] b = Character.toChars(a);
    System.out.println(b[0]); // Prints '1'
    Salin selepas log masuk

Atas ialah kandungan terperinci Mengapa Kod Java Saya Menukarkan Integer kepada Aksara Tidak Boleh Dicetak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan