CodeGym /Java-blogg /Tilfeldig /Java Konverter Char til Int med eksempler
John Squirrels
Nivå
San Francisco

Java Konverter Char til Int med eksempler

Publisert i gruppen
Ganske ofte må symbolsk informasjon som brukere skriver inn fra tastaturet konverteres til tall, ellers bør en programmerer få tall fra den. Det er noen metoder i Java for å gjøre det. I denne artikkelen vil vi finne ut metodene for å hjelpe oss med å konvertere char til int-verdi.

Implisitt Type-casting

Typecasting er prosessen med å konvertere en verdi av én datatype til en verdi av en annen datatype. Typestøping kan være manuell eller automatisk avhengig av type. Typene skal være kompatible. I Java har vi to typer typecasting, eksplisitt og implisitt. Implisitt kan bare gjøres hvis vi konverterer variabelen fra "større" til "mindre" type (f.eks. fra int til lang). Hvis vi ønsker å konvertere en variabel av typen char til int datatype, må vi oftest hente dens ekvivalente verdi fra ASCII-tabellen. Hvert alfabet eller symbol som kan legges inn digitalt har et tilsvarende unikt heltall. For eksempel har alfabetet 'A' en ASCII-kode på 65. Ved type casting konverterer vi med kraft tegnverdien til den tilsvarende ASCII-heltallskoden. Her er vårt Java char to int eksempel ved å bruke type casting.

Java char to int eksempel (bruker 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);
       }
   }
Utgangen er:
ASCII-verdien av 'A' er 65 ASCII-verdien av 'a' er 97

Eksplisitt type casting

Som vi så ovenfor, i tilfelle av char til int-konvertering, er det ikke nødvendig å gjøre dette eksplisitt, siden 2 byte brukes til å lagre char, og 4 byte brukes til å lagre int. Det vil si at int-typen er "større". Likevel, som en øvelse, kan vi eksplisitt kaste en char-variabel til et heltall. For denne operasjonen nevner vi (int) i parentes.

package charToInt;

public class Explicit {

       public static void main(String[] args) {
           char char1 = 'A';
           System.out.println("ASCII value of '" + char1 + "' is " + (int)char1);
       }
   }
Utgangen er:
ASCII-verdien for 'A' er 65

Bruke getNumericValue()

getNumericValue() fungerer på samme måte som typecasting, men i stedet for å følge ASCII-tabellen, følger den Unicode-kodingsstandarden. ASCII kan bare representere et spesifikt sett med symboler og tegn som latinske bokstaver (pluss noen nasjonale alfabetsymboler), tall, tegnsetting og kontrolltegn. Unicode inneholder over en million verdier som inneholder bokstaver og symboler for hvert språk i verden. For eksempel er verdien av A i Unicode \u0041 som tilsvarer en numerisk verdi på 10. Hvis tegnet ikke har en numerisk verdi, returnerer metoden -1. Å bruke denne metoden kan være praktisk å returnere ikke-negative heltall.

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

       }
   }
Utgangen er:
Unicode-verdien til '7' er 7 Unicode-verdien til 'A' er 10 Unicode-verdien til '*' er -1

Bruker ParseInt()

ParseInt() er en annen metode for å konvertere char til int. Det er også mye brukt til å krysskonvertere mellom andre numeriske datatyper, for eksempel en float, double og long. ParseInt() krever minst ett argument og maksimalt to argumenter. Det første argumentet er variabelnavnet til verdien vi konverterer. Det andre argumentet er radiksen som refererer til grunnverdien av desimal, oktal, heksadesimal, osv. På grunn av muligheten til ParseInt() til å konvertere datatyper med tallsystemet i tankene også, er det et optimalt valg for å konvertere "numerisk" ” char til int i Java. Det er to viktige punkter å huske på hvis du vil bruke denne metoden. parseInt()metoden aksepterer kun String-argumenter, så du bør først konvertere char til String (ved å bruke String.valueOf ). Du kan ikke bruke parseInt() til å konvertere alfabetene eller andre symboler bortsett fra numeriske verdier som er lagret i char-datatypen. Hvis du legger inn ikke-numeriske verdier, får du en feilmelding. Her er et Java-eksempel:

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);
       }
   }
Utgangen er:
7
La oss prøve å bruke parseInt tonn ikke-numerisk verdi:

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);
       }
   }
Utgangen er:
Unntak i tråden "main" java.lang.NumberFormatException: For inndatastreng: "q" på java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68) på java.base/java.lang.Integer.parseInt (Integer.java:652) på java.base/java.lang.Integer.parseInt(Integer.java:770) på charToInt.ValueOf.main(ValueOf.java:6)

Å trekke fra '0'

Det er en veldig enkel måte å konvertere et tegn til et heltall. For å gjøre dette, trekker du ganske enkelt ASCII-verdien til tegnet "0" fra tegnet. For eksempel, for å få int 7 fra tegnet "7":

int intValue = '7'-' 0 ';
Merk at dette fungerer for å få int-verdier eksklusivt for heltallstegn! Hvis du trekker '0' fra for eksempel 'A', vil metoden ganske enkelt returnere forskjellen mellom ASCII-kodene på null og bokstaven A. Her er et eksempel.

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

}
Utgangen er:
7 7 A 17 * -6

Konklusjoner

Hvis du trenger å konvertere char til int i Java, bruk en av metodene:
  • Implisitt type casting //å få ASCII-verdier
  • Character.getNumericValue()
  • Integer.parseInt() //i par med String.valueOf())
  • Å subtrahere '0' // fungerer bare for heltalls numeriske verdier
Du kan også gjøre eksplisitt type casting. Dette er imidlertid en overflødig operasjon: den er ikke nødvendig, men fungerer bare i Java.
Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION