CodeGym /Java Blog /Random-IT /Java Converti Char in Int con esempi
John Squirrels
Livello 41
San Francisco

Java Converti Char in Int con esempi

Pubblicato nel gruppo Random-IT
Abbastanza spesso le informazioni simboliche che gli utenti inseriscono dalla tastiera devono essere convertite in numeri o un programmatore dovrebbe ricavarne i numeri. Ci sono alcuni metodi in Java per farlo. In questo articolo, scopriremo i metodi per aiutarci a convertire char in int value.

Casting di tipo implicito

Il cast di tipi è il processo di conversione di un valore di un tipo di dati in un valore di un altro tipo di dati. Il casting del tipo potrebbe essere manuale o automatico a seconda dei tipi. I tipi dovrebbero essere compatibili. In Java abbiamo due tipi di typecasting, esplicito e implicito. L'implicito può essere fatto solo se convertiamo la variabile dal tipo "più grande" al tipo "più piccolo" (diciamo, da int a long). Se vogliamo convertire una variabile di tipo char in un tipo di dati int, molto spesso abbiamo bisogno di ottenere il suo valore equivalente dalla tabella ASCII. Ogni alfabeto o simbolo che può essere inserito digitalmente ha un numero intero univoco corrispondente. Ad esempio, l'alfabeto "A" ha un codice ASCII di 65. Con il casting del tipo, convertiamo forzatamente il valore del carattere nel suo codice intero ASCII equivalente. Ecco il nostro esempio da char Java a int usando il casting di tipo.

Esempio Java da char a int (usando 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);
       }
   }
L'uscita è:
Il valore ASCII di 'A' è 65 Il valore ASCII di 'a' è 97

Casting di tipo esplicito

Come abbiamo visto in precedenza, nel caso della conversione da char a int, non è necessario farlo in modo esplicito, poiché vengono utilizzati 2 byte per memorizzare char e 4 byte per memorizzare int. Cioè, il tipo int è "più grande". Tuttavia, come esercizio, possiamo convertire esplicitamente una variabile char in un numero intero. Per questa operazione, menzioniamo (int) tra parentesi.

package charToInt;

public class Explicit {

       public static void main(String[] args) {
           char char1 = 'A';
           System.out.println("ASCII value of '" + char1 + "' is " + (int)char1);
       }
   }
L'uscita è:
Il valore ASCII di 'A' è 65

Utilizzo di getNumericValue()

getNumericValue() funziona in modo simile al casting di tipo, ma invece di seguire la tabella ASCII, segue lo standard di codifica Unicode. ASCII può rappresentare solo un insieme specifico di simboli e caratteri come lettere latine (più alcuni simboli dell'alfabeto nazionale), numeri, punteggiatura e caratteri di controllo. Unicode contiene oltre un milione di valori contenenti lettere e simboli per ogni lingua del mondo. Ad esempio, il valore di A in Unicode è \u0041 che equivale a un valore numerico di 10. Se il carattere non ha un valore numerico, il metodo restituisce -1. L'utilizzo di questo metodo potrebbe essere conveniente per restituire numeri interi non negativi.

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

       }
   }
L'uscita è:
Il valore Unicode di '7' è 7 Il valore Unicode di 'A' è 10 Il valore Unicode di '*' è -1

Usando ParseInt()

ParseInt() è un altro metodo per convertire il carattere in int. È anche ampiamente utilizzato per la conversione incrociata tra altri tipi di dati numerici, come float, double e long. ParseInt() richiede almeno un argomento e al massimo due argomenti. Il primo argomento è il nome della variabile del valore che stiamo convertendo. Il secondo argomento è la radice che si riferisce al valore base di decimale, ottale, esadecimale, ecc. Grazie alla capacità di ParseInt() di convertire i tipi di dati tenendo presente anche il sistema numerico, è una scelta ottimale per convertire "numerical ” char in int in Java. Ci sono due punti importanti da tenere a mente se si desidera utilizzare questo metodo. analisiInt()Il metodo accetta solo argomenti String, quindi dovresti prima convertire char in String (usando String.valueOf ). Non è possibile utilizzare parseInt() per convertire gli alfabeti o altri simboli ad eccezione dei valori numerici memorizzati nel tipo di dati char. Se inserisci valori non numerici, riceverai un errore. Ecco un esempio 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);
       }
   }
L'uscita è:
7
Proviamo a utilizzare parseInt ton valore non numerico:

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);
       }
   }
L'uscita è:
Eccezione nel thread "principale" java.lang.NumberFormatException: per la stringa di input: "q" in java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68) in java.base/java.lang.Integer.parseInt (Integer.java:652) su java.base/java.lang.Integer.parseInt(Integer.java:770) su charToInt.ValueOf.main(ValueOf.java:6)

Sottraendo '0'

C'è un modo molto semplice per convertire un carattere in un numero intero. Per fare ciò, sottrarre semplicemente il valore ASCII del carattere "0" dal carattere. Ad esempio, per ottenere int 7 dal carattere "7":

int intValue = '7'-' 0 ';
Nota che funziona per ottenere valori int esclusivamente per caratteri interi! Se sottrai "0" da, ad esempio, "A", il metodo restituirà semplicemente la differenza tra i codici ASCII di zero e la lettera A. Ecco un esempio.

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

}
L'uscita è:
7 7 LA 17 * -6

Conclusioni

Se hai bisogno di convertire char in int in Java usa uno dei metodi:
  • Casting di tipo implicito //ottenimento di valori ASCII
  • Carattere.getValoreNumerico()
  • Integer.parseInt() //in coppia con String.valueOf())
  • La sottrazione di '0' //funziona solo per valori numerici interi
Puoi anche eseguire un casting di tipo esplicito. Tuttavia, questa è un'operazione ridondante: non è necessaria, ma funziona solo in Java.
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION