CodeGym /Java Blog /Acak /Java Mengkonversi Char ke Int Dengan Contoh
John Squirrels
Level 41
San Francisco

Java Mengkonversi Char ke Int Dengan Contoh

Dipublikasikan di grup Acak
Cukup sering informasi simbolis yang dimasukkan pengguna dari keyboard perlu diubah menjadi angka atau pemrogram harus mendapatkan angka darinya. Ada beberapa metode di Jawa untuk melakukannya. Pada artikel ini, kami akan mencari tahu metode untuk membantu kami mengonversi nilai char ke int.

Casting Tipe Implisit

Type casting adalah proses mengubah nilai dari satu tipe data menjadi nilai dari tipe data lainnya. Pengecoran tipe bisa manual atau otomatis tergantung tipenya. Jenis harus kompatibel. Di Java kami memiliki dua jenis typecasting, eksplisit dan implisit. Implisit hanya dapat dilakukan jika kita mengonversi variabel dari tipe "lebih besar" menjadi "lebih kecil" (katakanlah, dari int ke panjang). Jika kita ingin mengonversi variabel bertipe char menjadi tipe data int, paling sering kita perlu mendapatkan nilai ekuivalennya dari tabel ASCII. Setiap alfabet atau simbol yang dapat dimasukkan secara digital memiliki bilangan bulat unik yang sesuai. Misalnya, alfabet 'A' memiliki kode ASCII 65. Dengan pengecoran tipe, kami secara paksa mengubah nilai karakter menjadi kode bilangan bulat ASCII yang setara. Ini adalah contoh Java char to int kami menggunakan type casting.

Contoh Java char ke 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 adalah:
Nilai ASCII 'A' adalah 65 Nilai ASCII 'a' adalah 97

Pengecoran tipe eksplisit

Seperti yang kita lihat di atas, dalam kasus konversi char ke int, tidak perlu melakukan ini secara eksplisit, karena 2 byte digunakan untuk menyimpan char, dan 4 byte digunakan untuk menyimpan int. Artinya, tipe int "lebih besar". Namun demikian, sebagai latihan, kita dapat secara eksplisit memasukkan variabel char ke bilangan bulat. Untuk operasi ini, kami menyebutkan (int) dalam tanda kurung.

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 adalah:
Nilai ASCII dari 'A' adalah 65

Menggunakan getNumericValue()

getNumericValue() berfungsi mirip dengan pengecoran tipe, tetapi alih-alih mengikuti tabel ASCII, ini mengikuti standar pengkodean Unicode. ASCII hanya dapat mewakili sekumpulan simbol dan karakter tertentu seperti huruf latin (ditambah beberapa simbol alfabet nasional), angka, tanda baca, dan karakter kontrol. Unicode berisi lebih dari satu juta nilai yang berisi huruf dan simbol untuk setiap bahasa di dunia. Misalnya, nilai A dalam Unicode adalah \u0041 yang setara dengan nilai numerik 10. Jika karakter tidak memiliki nilai numerik, metode mengembalikan -1. Menggunakan metode ini dapat memudahkan untuk mengembalikan bilangan bulat non-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 adalah:
Nilai Unicode '7' adalah 7 Nilai Unicode 'A' adalah 10 Nilai Unicode '*' adalah -1

Menggunakan ParseInt()

ParseInt() adalah metode lain untuk mengubah char menjadi int. Ini juga banyak digunakan untuk konversi silang antara tipe data numerik lainnya seperti float, double, dan long. ParseInt() membutuhkan setidaknya satu argumen dan paling banyak, dua argumen. Argumen pertama adalah nama variabel dari nilai yang kita ubah. Argumen kedua adalah radix yang mengacu pada nilai dasar desimal, oktal, heksadesimal, dll. Karena kemampuan ParseInt() untuk mengonversi tipe data dengan mempertimbangkan sistem angka juga, ini adalah pilihan optimal untuk mengonversi “numerik ” char ke int di Jawa. Ada dua poin penting yang perlu diingat jika Anda ingin menggunakan metode ini. parseInt()metode hanya menerima argumen String, jadi pertama-tama Anda harus mengonversi char menjadi String (menggunakan String.valueOf ). Anda tidak dapat menggunakan parseInt() untuk mengonversi abjad atau simbol lain kecuali nilai numerik yang disimpan dalam tipe data char. Jika Anda memasukkan nilai non-numerik, Anda akan mendapatkan error. Berikut adalah contoh bahasa Jawa:

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 adalah:
7
Mari kita coba gunakan nilai non-numerik 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 adalah:
Pengecualian di utas "utama" java.lang.NumberFormatException: Untuk string 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)

Mengurangi '0'

Ada cara yang sangat sederhana untuk mengonversi karakter menjadi bilangan bulat. Untuk melakukannya, cukup kurangi nilai ASCII dari karakter "0" dari karakter tersebut. Misalnya, untuk mendapatkan int 7 dari karakter "7":

int intValue = '7'-' 0 ';
Perhatikan, ini berfungsi untuk mendapatkan nilai int secara eksklusif untuk karakter bilangan bulat! Jika Anda mengurangkan '0' dari, katakanlah, 'A', metode ini hanya akan mengembalikan perbedaan antara kode ASCII nol dan huruf A. Berikut contohnya.

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 adalah:
7 7 A 17 * -6

Kesimpulan

Jika Anda perlu mengonversi char menjadi int di Java, gunakan salah satu metode:
  • Casting tipe implisit //mendapatkan nilai ASCII
  • Karakter.getNumericValue()
  • Integer.parseInt() //berpasangan dengan String.valueOf())
  • Pengurangan '0' //berfungsi hanya untuk nilai bilangan bulat
Anda juga dapat melakukan casting tipe eksplisit. Namun, ini adalah operasi yang berlebihan: tidak diperlukan, tetapi hanya berfungsi di Jawa.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION