CodeGym/Blog Java/rawak/Java Tukar Char kepada Int Dengan Contoh
John Squirrels
Tahap
San Francisco

Java Tukar Char kepada Int Dengan Contoh

Diterbitkan dalam kumpulan
Maklumat simbolik yang sering dimasukkan pengguna dari papan kekunci perlu ditukar kepada nombor atau pengaturcara harus mendapatkan nombor daripadanya. Terdapat beberapa kaedah di Jawa untuk melakukannya. Dalam artikel ini, kami akan memikirkan kaedah untuk membantu kami menukar char kepada nilai int.

Casting Jenis Tersirat

Jenis casting ialah proses menukar nilai satu jenis data kepada nilai jenis data yang lain. Jenis tuangan mungkin manual atau automatik bergantung pada jenis. Jenis harus serasi. Di Jawa kami mempunyai dua jenis taip, eksplisit dan tersirat. Tersirat hanya boleh dilakukan jika kita menukar pembolehubah daripada jenis "lebih besar" kepada "lebih kecil" (katakan, dari int kepada panjang). Jika kita ingin menukar pembolehubah jenis char kepada jenis data int, selalunya kita perlu mendapatkan nilai setaranya daripada jadual ASCII. Setiap abjad atau simbol yang boleh dimasukkan secara digital mempunyai nombor integer unik yang sepadan. Sebagai contoh, abjad 'A' mempunyai kod ASCII 65. Dengan menghantar taip, kami menukar nilai aksara secara paksa kepada kod integer ASCII yang setara dengannya. Berikut ialah contoh Java char ke int kami menggunakan pemutus jenis.

Java char ke contoh int (menggunakan typeCasting)

package charToInt;

public class Implicit {

       public static void main(String[] args) {
           char char1 = 'A';
           char char2 = 'a';
           int x = char1;
           int y = char2;

           System.out.println("ASCII value of '" + char1 + "' is " + x);
           System.out.println("ASCII value of '" + char2 + "' is " + y);
       }
   }
Outputnya ialah:
Nilai ASCII 'A' ialah 65 Nilai ASCII 'a' ialah 97

Pemutus jenis eksplisit

Seperti yang kita lihat di atas, dalam kes penukaran char kepada int, tidak perlu melakukan ini secara eksplisit, kerana 2 bait digunakan untuk menyimpan char, dan 4 bait digunakan untuk menyimpan int. Iaitu, jenis int adalah "lebih besar". Namun begitu, sebagai latihan, kita boleh secara eksplisit menghantar pembolehubah char kepada integer. Untuk operasi ini, kami menyebut (int) dalam kurungan.
package charToInt;

public class Explicit {

       public static void main(String[] args) {
           char char1 = 'A';
           System.out.println("ASCII value of '" + char1 + "' is " + (int)char1);
       }
   }
Outputnya ialah:
Nilai ASCII 'A' ialah 65

Menggunakan getNumericValue()

getNumericValue() berfungsi sama seperti penghantaran taip, tetapi bukannya mengikut jadual ASCII, ia mengikut standard pengekodan Unicode. ASCII hanya boleh mewakili set simbol dan aksara tertentu seperti huruf latin (ditambah beberapa simbol abjad kebangsaan), nombor, tanda baca dan aksara kawalan. Unicode mengandungi lebih sejuta nilai yang mengandungi huruf dan simbol untuk setiap bahasa di dunia. Sebagai contoh, nilai A dalam Unicode ialah \u0041 yang bersamaan dengan nilai angka 10. Jika aksara tidak mempunyai nilai angka, kaedah mengembalikan -1. Menggunakan kaedah ini boleh menjadi mudah untuk mengembalikan integer bukan negatif.
package charToInt;

public class UsingGetNumericValue {

       public static void main(String[] args) {
           char char1 = '7';
           char char2 = 'A';
           char char3 = '*';

           int x = Character.getNumericValue(char1);
           int y = Character.getNumericValue(char2);
           int z = Character.getNumericValue(char3);

           System.out.println("The Unicode value of '" + char1 + "' is " + x);
           System.out.println("The Unicode value of '" + char2 + "' is " + y);
           System.out.println("The Unicode value of '" + char3 + "' is " + z);

       }
   }
Outputnya ialah:
Nilai Unikod '7' ialah 7 Nilai Unikod 'A' ialah 10 Nilai Unikod '*' ialah -1

Menggunakan ParseInt()

ParseInt() ialah kaedah lain untuk menukar char kepada int. Ia juga digunakan secara meluas untuk menukar silang antara jenis data berangka lain seperti apungan, berganda dan panjang. ParseInt() memerlukan sekurang-kurangnya satu hujah dan paling banyak, dua hujah. Argumen pertama ialah nama pembolehubah bagi nilai yang kami tukar. Argumen kedua ialah radix yang merujuk kepada nilai asas perpuluhan, perlapanan, perenambelasan, dsb. Disebabkan oleh keupayaan ParseInt() untuk menukar jenis data dengan sistem nombor dalam fikiran juga, ia merupakan pilihan yang optimum untuk menukar "numerik ” char kepada int dalam Java. Terdapat dua perkara penting yang perlu diingat jika anda ingin menggunakan kaedah ini. parseInt()kaedah menerima argumen String sahaja, jadi anda perlu menukar char kepada String (menggunakan String.valueOf ). Anda tidak boleh menggunakan parseInt() untuk menukar abjad atau simbol lain kecuali nilai angka yang disimpan dalam jenis data char. Jika anda memasukkan nilai bukan angka, anda akan mendapat ralat. Berikut adalah contoh Java:
package charToInt;

public class ParseInt {
       public static void main(String args[]){
           char ch = '7';
           int n = Integer.parseInt(String.valueOf(ch));
           System.out.println(n);
       }
   }
Outputnya ialah:
7
Mari cuba gunakan nilai bukan angka parseInt ton:
package charToInt;

public class ParseInt {
       public static void main(String args[]){
           char ch = 'q';
           int n = Integer.parseInt(String.valueOf(ch));
           System.out.println(n);
       }
   }
Outputnya ialah:
Pengecualian dalam benang "utama" java.lang.NumberFormatException: Untuk rentetan input: "q" di java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68) di java.base/java.lang.Integer.parseInt (Integer.java:652) di java.base/java.lang.Integer.parseInt(Integer.java:770) di charToInt.ValueOf.main(ValueOf.java:6)

Menolak '0'

Terdapat cara yang sangat mudah untuk menukar aksara kepada integer. Untuk melakukan ini, hanya tolak nilai ASCII bagi aksara "0" daripada aksara itu. Sebagai contoh, untuk mendapatkan int 7 daripada aksara "7":
int intValue = '7'-' 0 ';
Ambil perhatian, ini berfungsi untuk mendapatkan nilai int secara eksklusif untuk aksara integer! Jika anda menolak '0' daripada, katakan, 'A', kaedah itu hanya akan mengembalikan perbezaan antara kod ASCII sifar dan huruf A. Berikut ialah contoh.
package charToInt;

public class SubtractingZero {

   public static void main(String[] args) {
       char char1 = '7';
       char char2 = 'A';
       char char3 = '*';

       System.out.println(char1);
       System.out.println(char1 - '0');

       System.out.println(char2);
       System.out.println(char2 - '0');

       System.out.println(char3);
       System.out.println(char3 - '0');

   }

}
Outputnya ialah:
7 7 A 17 * -6

Kesimpulan

Jika anda perlu menukar char kepada int dalam Java gunakan salah satu kaedah:
  • Casting jenis tersirat //mendapat nilai ASCII
  • Character.getNumericValue()
  • Integer.parseInt() //berpasangan dengan String.valueOf())
  • Menolak '0' //berfungsi untuk nilai angka integer sahaja
Anda juga boleh melakukan penghantaran jenis eksplisit. Walau bagaimanapun, ini adalah operasi berlebihan: ia tidak diperlukan, tetapi hanya berfungsi di Jawa.
Komen
  • Popular
  • Baru
  • Tua
Anda mesti log masuk untuk meninggalkan ulasan
Halaman ini tidak mempunyai sebarang ulasan lagi