CodeGym /Java Blog /Random /Java Convert Char to Int With Examples
John Squirrels
Antas
San Francisco

Java Convert Char to Int With Examples

Nai-publish sa grupo
Ang madalas na simbolikong impormasyon na ipinapasok ng mga gumagamit mula sa keyboard ay kailangang ma-convert sa mga numero o ang isang programmer ay dapat makakuha ng mga numero mula dito. Mayroong ilang mga pamamaraan sa Java upang gawin ito. Sa artikulong ito, malalaman natin ang mga pamamaraan upang matulungan kaming i-convert ang char sa int value.

Implicit Type сasting

Ang type casting ay ang proseso ng pag-convert ng value ng isang data type sa value ng isa pang data type. Maaaring manu-mano o awtomatiko ang pag-cast ng uri depende sa mga uri. Ang mga uri ay dapat na magkatugma. Sa Java mayroon kaming dalawang uri ng typecasting, tahasan at implicit. Magagawa lamang ang implicit kung iko-convert natin ang variable mula sa "mas malaki" patungo sa "mas maliit" na uri (sabihin, mula int hanggang mahaba). Kung gusto nating i-convert ang isang variable ng uri ng char sa int na uri ng data, kadalasan kailangan nating makuha ang katumbas na halaga nito mula sa talahanayan ng ASCII. Ang bawat alpabeto o simbolo na maaaring ilagay sa digital ay may katumbas na natatanging integer number. Halimbawa, ang alpabeto na 'A' ay may ASCII code na 65. Sa pamamagitan ng uri ng pag-cast, pilit naming kino-convert ang halaga ng character sa katumbas nitong ASCII integer code. Narito ang aming Java char to int na halimbawa gamit ang uri ng casting.

Halimbawa ng Java char hanggang int (gamit ang 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);
       }
   }
Ang output ay:
Ang halaga ng ASCII ng 'A' ay 65 Ang halaga ng ASCII ng 'a' ay 97

Tiyak na uri ng pag-cast

Tulad ng nakita natin sa itaas, sa kaso ng char sa int conversion, hindi kinakailangang gawin ito nang tahasan, dahil 2 byte ang ginagamit upang mag-imbak ng char, at 4 na byte ang ginagamit upang mag-imbak ng int. Ibig sabihin, "mas malaki" ang uri ng int. Gayunpaman, bilang isang ehersisyo, maaari naming tahasang i-cast ang isang char variable sa isang integer. Para sa operasyong ito, binanggit namin ang (int) sa mga panaklong.

package charToInt;

public class Explicit {

       public static void main(String[] args) {
           char char1 = 'A';
           System.out.println("ASCII value of '" + char1 + "' is " + (int)char1);
       }
   }
Ang output ay:
Ang halaga ng ASCII ng 'A' ay 65

Gamit ang getNumericValue()

getNumericValue() ay gumagana nang katulad sa uri ng casting, ngunit sa halip na sundin ang ASCII table, ito ay sumusunod sa Unicode encoding standard. Ang ASCII ay maaari lamang kumatawan sa isang partikular na hanay ng mga simbolo at character tulad ng mga latin na titik (kasama ang ilang pambansang simbolo ng alpabeto), mga numero, bantas at mga control character. Ang Unicode ay naglalaman ng higit sa isang milyong halaga na naglalaman ng mga titik at simbolo para sa bawat wika sa mundo. Halimbawa, ang value ng A sa Unicode ay \u0041 na katumbas ng numeric na value na 10. Kung ang character ay walang numeric na value, ang paraan ay nagbabalik -1. Ang paggamit ng paraang ito ay maaaring maging maginhawa upang ibalik ang mga hindi negatibong integer.

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);

       }
   }
Ang output ay:
Ang Unicode value ng '7' ay 7 Ang Unicode value ng 'A' ay 10 Ang Unicode value ng '*' ay -1

Paggamit ng ParseInt()

Ang ParseInt() ay isa pang paraan upang i-convert ang char sa int. Malawak din itong ginagamit upang mag-cross convert sa pagitan ng iba pang mga numeric na uri ng data pati na rin tulad ng float, double, at long. Ang ParseInt() ay nangangailangan ng hindi bababa sa isang argumento at higit sa lahat, dalawang argumento. Ang unang argumento ay ang variable na pangalan ng value na kino-convert namin. Ang pangalawang argumento ay ang radix na tumutukoy sa batayang halaga ng decimal, octal, hexadecimal, atbp. Dahil sa kakayahan ng ParseInt() na i-convert ang mga uri ng data na nasa isip din ang sistema ng numero, isa itong pinakamainam na pagpipilian para sa pag-convert ng “numerical ” char sa int sa Java. Mayroong dalawang mahalagang punto na dapat tandaan kung nais mong gamitin ang paraang ito. parseInt()ang pamamaraan ay tumatanggap lamang ng mga argumento ng String, kaya dapat mo munang i-convert ang char sa String (gamit ang String.valueOf ). Hindi mo magagamit ang parseInt() upang i-convert ang mga alpabeto o iba pang mga simbolo maliban sa mga numerong halaga na nakaimbak sa uri ng data ng char. Kung mag-input ka ng mga hindi numeric na halaga, magkakaroon ka ng error. Narito ang isang halimbawa ng 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);
       }
   }
Ang output ay:
7
Subukan nating gumamit ng parseInt ton non-numeric na halaga:

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);
       }
   }
Ang output ay:
Exception sa thread na "main" java.lang.NumberFormatException: Para sa input string: "q" sa java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68) sa java.base/java.lang.Integer.parseInt (Integer.java:652) sa java.base/java.lang.Integer.parseInt(Integer.java:770) at charToInt.ValueOf.main(ValueOf.java:6)

Ibinabawas ang '0'

Mayroong isang napaka-simpleng paraan upang i-convert ang isang character sa isang integer. Upang gawin ito, ibawas lamang ang halaga ng ASCII ng character na "0" mula sa character. Halimbawa, upang makakuha ng int 7 mula sa character na "7":

int intValue = '7'-' 0 ';
Tandaan, na ito ay gumagana para sa pagkuha ng mga int value na eksklusibo para sa mga integer na character! Kung ibawas mo ang '0' mula sa, sabihin nating, 'A', ibabalik lang ng pamamaraan ang pagkakaiba sa pagitan ng mga ASCII code ng zero at ng titik A. Narito ang isang halimbawa.

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');
      
   }

}
Ang output ay:
7 7 A 17 * -6

Mga konklusyon

Kung kailangan mong i-convert ang char sa int sa Java gumamit ng isa sa mga pamamaraan:
  • Implicit type casting //pagkuha ng mga ASCII value
  • Character.getNumericValue()
  • Integer.parseInt() //in pair with String.valueOf())
  • Ang pagbabawas ng '0' // ay gumagana para sa mga integer na numerong halaga lamang
Maaari ka ring gumawa ng tahasang uri ng pag-cast. Gayunpaman, ito ay isang kalabisan na operasyon: hindi ito kailangan, ngunit gumagana lamang sa Java.
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION