CodeGym /Java blogg /Slumpmässig /Java Konvertera Char till Int med exempel
John Squirrels
Nivå
San Francisco

Java Konvertera Char till Int med exempel

Publicerad i gruppen
Ganska ofta symbolisk information som användare anger från tangentbordet måste konverteras till siffror eller så bör en programmerare få siffror från den. Det finns några metoder i Java för att göra det. I den här artikeln kommer vi att ta reda på metoderna för att hjälpa oss att konvertera char till int-värde.

Implicit typ av casting

Typgjutning är processen att konvertera ett värde av en datatyp till ett värde av en annan datatyp. Typgjutning kan vara manuell eller automatisk beroende på typ. Typerna ska vara kompatibla. I Java har vi två typer av typcasting, explicit och implicit. Implicit kan bara göras om vi konverterar variabeln från "större" till "mindre" typ (säg, från int till lång). Om vi ​​vill konvertera en variabel av typen char till int datatyp behöver vi oftast få dess ekvivalenta värde från ASCII-tabellen. Varje alfabet eller symbol som kan matas in digitalt har ett motsvarande unikt heltal. Till exempel, alfabetet 'A' har en ASCII-kod på 65. Genom att typ casta omvandlar vi teckenvärdet med kraft till dess motsvarande ASCII-heltalskod. Här är vårt Java-char to int-exempel som använder typcasting.

Java char till int exempel (med 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);
       }
   }
Utgången är:
ASCII-värdet på 'A' är 65 ASCII-värdet på 'a' är 97

Explicit typ av gjutning

Som vi såg ovan, i fallet med char till int-konvertering, är det inte nödvändigt att göra detta explicit, eftersom 2 byte används för att lagra char och 4 byte används för att lagra int. Det vill säga int-typen är "större". Ändå, som en övning, kan vi uttryckligen gjuta en char-variabel till ett heltal. För denna operation nämner vi (int) inom 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);
       }
   }
Utgången är:
ASCII-värdet för 'A' är 65

Använder getNumericValue()

getNumericValue() fungerar på samma sätt som typcasting, men istället för att följa ASCII-tabellen följer den Unicode-kodningsstandarden. ASCII kan bara representera en specifik uppsättning symboler och tecken som latinska bokstäver (plus några nationella alfabetsymboler), siffror, skiljetecken och kontrolltecken. Unicode innehåller över en miljon värden som innehåller bokstäver och symboler för alla språk i världen. Till exempel är värdet på A i Unicode \u0041 vilket motsvarar ett numeriskt värde på 10. Om tecknet inte har ett numeriskt värde returnerar metoden -1. Att använda denna metod kan vara bekvämt att returnera icke-negativa 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);

       }
   }
Utgången är:
Unicode-värdet för '7' är 7 Unicode-värdet för 'A' är 10 Unicode-värdet för '*' är -1

Använder ParseInt()

ParseInt() är en annan metod för att konvertera char till int. Det används också i stor utsträckning för att korskonvertera mellan andra numeriska datatyper, såsom en float, dubbel och lång. ParseInt() kräver minst ett argument och högst två argument. Det första argumentet är variabelnamnet på värdet vi konverterar. Det andra argumentet är radixen som hänvisar till basvärdet för decimal, oktal, hexadecimal, etc. På grund av förmågan hos ParseInt() att konvertera datatyper med talsystemet i åtanke, är det ett optimalt val för att konvertera "numerical ” char till int i Java. Det finns två viktiga punkter att tänka på om du vill använda den här metoden. parseInt()metoden accepterar endast String-argument, så du bör först konvertera char till String (med String.valueOf ) . Du kan inte använda parseInt() för att konvertera alfabeten eller andra symboler förutom numeriska värden lagrade i char-datatypen. Om du anger icke-numeriska värden får du ett felmeddelande. Här är ett Java-exempel:

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);
       }
   }
Utgången är:
7
Låt oss försöka använda parseInt ton icke-numeriskt värde:

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);
       }
   }
Utgången är:
Undantag i tråden "main" java.lang.NumberFormatException: För inmatningssträng: "q" vid java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68) vid 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)

subtrahera '0'

Det finns ett mycket enkelt sätt att konvertera ett tecken till ett heltal. För att göra detta, subtrahera helt enkelt ASCII-värdet för tecknet "0" från tecknet. Till exempel, för att få int 7 från tecknet "7":

int intValue = '7'-' 0 ';
Observera att detta fungerar för att få int-värden exklusivt för heltalstecken! Om du subtraherar '0' från, säg, 'A', kommer metoden helt enkelt att returnera skillnaden mellan ASCII-koderna för noll och bokstaven A. Här är ett exempel.

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

}
Utgången är:
7 7 A 17 * -6

Slutsatser

Om du behöver konvertera char till int i Java använd en av metoderna:
  • Implicit typgjutning //att få ASCII-värden
  • Character.getNumericValue()
  • Integer.parseInt() //i par med String.valueOf())
  • Att subtrahera '0' //verkar endast för heltals numeriska värden
Du kan också göra explicit typcasting. Detta är dock en redundant operation: den behövs inte, utan fungerar bara i Java.
Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION