CodeGym /Blog Java /Aleatoriu /Java Convertiți Char în int cu exemple
John Squirrels
Nivel
San Francisco

Java Convertiți Char în int cu exemple

Publicat în grup
Destul de des, informațiile simbolice pe care utilizatorii le introduc de la tastatură trebuie convertite în numere sau un programator ar trebui să obțină numere de la ea. Există câteva metode în Java pentru a face acest lucru. În acest articol, vom descoperi metodele care ne ajută să convertim char în valoare int.

Castare implicită de tip

Turnarea tipului este procesul de conversie a unei valori a unui tip de date într-o valoare a altui tip de date. Turnarea tipului poate fi manuală sau automată, în funcție de tipuri. Tipurile ar trebui să fie compatibile. În Java avem două tipuri de tipărire, explicită și implicită. Implicitul poate fi făcut numai dacă convertim variabila de la tipul „mai mare” la „mai mic” (să zicem, de la int la lung). Dacă dorim să convertim o variabilă de tip char în tip de date int, cel mai adesea trebuie să obținem valoarea ei echivalentă din tabelul ASCII. Fiecare alfabet sau simbol care poate fi introdus digital are un număr întreg unic corespunzător. De exemplu, alfabetul „A” are un cod ASCII de 65. Prin introducerea tipului, convertim cu forță valoarea caracterului în codul său întreg ASCII echivalent. Iată exemplul nostru Java char to int folosind tip casting.

Exemplu Java char to int (folosind 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);
       }
   }
Ieșirea este:
Valoarea ASCII a lui „A” este 65 Valoarea ASCII a lui „a” este 97

Casting de tip explicit

După cum am văzut mai sus, în cazul conversiei char la int, nu este necesar să faceți acest lucru în mod explicit, deoarece 2 octeți sunt folosiți pentru a stoca char și 4 octeți sunt folosiți pentru a stoca int. Adică, tipul int este „mai mare”. Cu toate acestea, ca exercițiu, putem transforma în mod explicit o variabilă char într-un număr întreg. Pentru această operație, menționăm (int) între paranteze.

package charToInt;

public class Explicit {

       public static void main(String[] args) {
           char char1 = 'A';
           System.out.println("ASCII value of '" + char1 + "' is " + (int)char1);
       }
   }
Ieșirea este:
Valoarea ASCII a lui „A” este 65

Folosind getNumericValue()

getNumericValue() funcționează în mod similar cu castingul de tip, dar în loc să urmeze tabelul ASCII, urmează standardul de codificare Unicode. ASCII poate reprezenta doar un set specific de simboluri și caractere, cum ar fi literele latine (plus unele simboluri din alfabetul național), numerele, semnele de punctuație și caracterele de control. Unicode conține peste un milion de valori care conțin litere și simboluri pentru fiecare limbă din lume. De exemplu, valoarea lui A în Unicode este \u0041, ceea ce este echivalent cu o valoare numerică de 10. Dacă caracterul nu are o valoare numerică, metoda returnează -1. Utilizarea acestei metode ar putea fi convenabilă pentru a returna numere întregi nenegative.

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

       }
   }
Ieșirea este:
Valoarea Unicode a lui „7” este 7 Valoarea Unicode a lui „A” este 10 Valoarea Unicode a lui „*” este -1

Folosind ParseInt()

ParseInt() este o altă metodă de a converti caracterul în int. De asemenea, este utilizat pe scară largă pentru conversia încrucișată între alte tipuri de date numerice, cum ar fi float, double și long. ParseInt() necesită cel puțin un argument și cel mult două argumente. Primul argument este numele variabilei valorii pe care o convertim. Al doilea argument este radixul care se referă la valoarea de bază a zecimalului, octalului, hexazecimalului etc. Datorită capacității ParseInt() de a converti tipuri de date ținând cont și de sistemul numeric, este o alegere optimă pentru conversia „numerică”. ” char la int în Java. Există două puncte importante de reținut dacă doriți să utilizați această metodă. parseInt()metoda acceptă numai argumente String, așa că mai întâi ar trebui să convertiți char în String (folosind String.valueOf ). Nu puteți utiliza parseInt() pentru a converti alfabetele sau alte simboluri, cu excepția valorilor numerice stocate în tipul de date char. Dacă introduceți valori non-numerice, veți primi o eroare. Iată un exemplu 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);
       }
   }
Ieșirea este:
7
Să încercăm să folosim valoarea non-numerică 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);
       }
   }
Ieșirea este:
Excepție în firul „principal” java.lang.NumberFormatException: pentru șirul de intrare: „q” la java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68) la java.base/java.lang.Integer.parseInt (Integer.java:652) la java.base/java.lang.Integer.parseInt(Integer.java:770) la charToInt.ValueOf.main(ValueOf.java:6)

Scăderea „0”

Există o modalitate foarte simplă de a converti un caracter într-un număr întreg. Pentru a face acest lucru, pur și simplu scădeți valoarea ASCII a caracterului „0” din caracter. De exemplu, pentru a obține int 7 din caracterul „7”:

int intValue = '7'-' 0 ';
Rețineți că acest lucru funcționează pentru obținerea valorilor int exclusiv pentru caractere întregi! Dacă scădeți „0” din, să spunem, „A”, metoda va returna pur și simplu diferența dintre codurile ASCII de zero și litera A. Iată un exemplu.

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

}
Ieșirea este:
7 7 A 17 * -6

Concluzii

Dacă trebuie să convertiți char în int în Java, utilizați una dintre metodele:
  • Casting tip implicit //obținerea valorilor ASCII
  • Character.getNumericValue()
  • Integer.parseInt() //în pereche cu String.valueOf())
  • Scăderea „0” //funcționează numai pentru valori numerice întregi
De asemenea, puteți face casting explicit de tip. Cu toate acestea, aceasta este o operație redundantă: nu este necesară, ci funcționează doar în Java.
Comentarii
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION