CodeGym /Java blog /Tilfældig /Java Konverter Char til Int med eksempler
John Squirrels
Niveau
San Francisco

Java Konverter Char til Int med eksempler

Udgivet i gruppen
Temmelig ofte symbolsk information, som brugere indtaster fra tastaturet, skal konverteres til tal, ellers skal en programmør få tal fra det. Der er nogle metoder i Java til at gøre det. I denne artikel vil vi finde ud af metoderne til at hjælpe os med at konvertere char til int-værdi.

Implicit Type-casting

Typestøbning er processen med at konvertere en værdi af en datatype til en værdi af en anden datatype. Typestøbning kan være manuel eller automatisk afhængig af typer. Typerne skal være kompatible. I Java har vi to typer typecasting, eksplicit og implicit. Implicit kan kun gøres, hvis vi konverterer variablen fra "større" til "mindre" type (f.eks. fra int til lang). Hvis vi ønsker at konvertere en variabel af typen char til int datatype, skal vi oftest hente dens tilsvarende værdi fra ASCII-tabellen. Hvert alfabet eller symbol, der kan indtastes digitalt, har et tilsvarende unikt heltal. For eksempel har alfabetet 'A' en ASCII-kode på 65. Ved typecasting konverterer vi med kraft tegnværdien til dens tilsvarende ASCII-heltalskode. Her er vores Java char to int eksempel ved hjælp af type casting.

Java char til int eksempel (ved hjælp af 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);
       }
   }
Udgangen er:
ASCII-værdien af ​​'A' er 65 ASCII-værdien af ​​'a' er 97

Eksplicit type støbning

Som vi så ovenfor, i tilfælde af char til int konvertering, er det ikke nødvendigt at gøre dette eksplicit, da 2 bytes bruges til at lagre char, og 4 bytes bruges til at gemme int. Det vil sige, at int-typen er "større". Ikke desto mindre kan vi som en øvelse eksplicit caste en char-variabel til et heltal. For denne operation nævner 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);
       }
   }
Udgangen er:
ASCII-værdien for 'A' er 65

Brug af getNumericValue()

getNumericValue() fungerer på samme måde som typecasting, men i stedet for at følge ASCII-tabellen følger den Unicode-kodningsstandarden. ASCII kan kun repræsentere et bestemt sæt af symboler og tegn, såsom latinske bogstaver (plus nogle nationale alfabetsymboler), tal, tegnsætning og kontroltegn. Unicode indeholder over en million værdier, der indeholder bogstaver og symboler for alle sprog i verden. For eksempel er værdien af ​​A i Unicode \u0041, hvilket svarer til en numerisk værdi på 10. Hvis tegnet ikke har en numerisk værdi, returnerer metoden -1. Brug af denne metode kunne være praktisk at returnere ikke-negative heltal.

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

       }
   }
Udgangen er:
Unicode-værdien for '7' er 7 Unicode-værdien af ​​'A' er 10 Unicode-værdien af ​​'*' er -1

Brug af ParseInt()

ParseInt() er en anden metode til at konvertere char til int. Det er også meget brugt til at krydskonvertere mellem andre numeriske datatyper, såsom en float, double og long. ParseInt() kræver mindst et argument og højst to argumenter. Det første argument er variabelnavnet på den værdi, vi konverterer. Det andet argument er radixet, som refererer til basisværdien af ​​decimal, oktal, hexadecimal osv. På grund af ParseInt() 's evne til også at konvertere datatyper med talsystemet i tankerne, er det et optimalt valg til konvertering af "numerisk ” char til int i Java. Der er to vigtige punkter at huske på, hvis du vil bruge denne metode. parseInt()metode accepterer kun String-argumenter, så du bør først konvertere char til String (ved hjælp af String.valueOf ). Du kan ikke bruge parseInt() til at konvertere alfabeter eller andre symboler undtagen numeriske værdier gemt i char-datatypen. Hvis du indtaster ikke-numeriske værdier, får du en fejl. 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);
       }
   }
Udgangen er:
7
Lad os prøve at bruge parseInt ton ikke-numerisk værdi:

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);
       }
   }
Udgangen er:
Undtagelse i tråden "main" java.lang.NumberFormatException: For inputstreng: "q" ved java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68) ved 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)

trække '0' fra

Der er en meget enkel måde at konvertere et tegn til et heltal. For at gøre dette skal du blot trække ASCII-værdien af ​​tegnet "0" fra tegnet. For eksempel, for at få int 7 fra tegnet "7":

int intValue = '7'-' 0 ';
Bemærk, at dette virker til at få int-værdier udelukkende for heltalskarakterer! Hvis du trækker '0' fra for eksempel 'A', vil metoden blot returnere forskellen mellem ASCII-koderne på nul og bogstavet 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');
      
   }

}
Udgangen er:
7 7 A 17 * -6

Konklusioner

Hvis du skal konvertere char til int i Java, brug en af ​​metoderne:
  • Implicit type casting //få ASCII-værdier
  • Character.getNumericValue()
  • Integer.parseInt() //i par med String.valueOf())
  • At subtrahere '0' //virker kun for heltallige numeriske værdier
Du kan også lave eksplicit type casting. Dette er dog en overflødig operation: den er ikke nødvendig, men fungerer bare i Java.
Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION