CodeGym /Java blog /Véletlen /Java konvertálja a Chart Int-re példákkal
John Squirrels
Szint
San Francisco

Java konvertálja a Chart Int-re példákkal

Megjelent a csoportban
A felhasználók által a billentyűzetről beírt szimbolikus információkat gyakran számokká kell alakítani, vagy a programozónak számokat kell beszereznie belőle. A Java-ban van néhány módszer erre. Ebben a cikkben kitaláljuk azokat a módszereket, amelyek segítenek a char int értékké konvertálásában.

Implicit típusú öntés

A típusöntés az egyik adattípus értékének egy másik adattípus értékévé konvertálásának folyamata. A típusöntés típustól függően lehet kézi vagy automatikus. A típusoknak kompatibilisnek kell lenniük. A Java nyelven kétféle típusú szövegküldés van, az explicit és az implicit. Implicit csak akkor lehetséges, ha a változót "nagyobb"-ból "kisebb" típusúvá alakítjuk (mondjuk int- ből long -ra). Ha egy char típusú változót szeretnénk int adattípussá konvertálni, akkor leggyakrabban az ASCII táblából kell lekérnünk az ekvivalens értékét. Minden digitálisan beírható ábécé vagy szimbólum rendelkezik egy megfelelő egyedi egész számmal. Például az „A” ábécé ASCII-kódja 65. A típus-öntéssel erőteljesen átalakítjuk a karakterértéket a megfelelő ASCII-egész kódká. Itt van a Java char to int példánk a típusöntéssel.

Java char to int példa (typeCasting használatával)


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);
       }
   }
A kimenet a következő:
Az 'A' ASCII értéke 65, az 'a' ASCII értéke 97

Explicit típusú öntvény

Ahogy fentebb láttuk, a char int konverziónál ezt nem kell kifejezetten megtenni, hiszen 2 bájtot használunk a char, 4 bájt pedig int tárolására. Vagyis az int típus "nagyobb". Ennek ellenére gyakorlatként egy char változót kifejezetten egész számra önthetünk. Ennél a műveletnél zárójelben említjük (int).

package charToInt;

public class Explicit {

       public static void main(String[] args) {
           char char1 = 'A';
           System.out.println("ASCII value of '" + char1 + "' is " + (int)char1);
       }
   }
A kimenet a következő:
Az „A” ASCII értéke 65

A getNumericValue() használata

A getNumericValue() a típusöntéshez hasonlóan működik, de ahelyett, hogy az ASCII-táblázatot követné, a Unicode kódolási szabványt követi. Az ASCII csak meghatározott szimbólum- és karakterkészletet tud képviselni, például latin betűket (pl. egyes nemzeti ábécé szimbólumokat), számokat, írásjeleket és vezérlőkaraktereket. A Unicode több mint egymillió értéket tartalmaz, amelyek betűket és szimbólumokat tartalmaznak a világ minden nyelvéhez. Például az A értéke a Unicode-ban \u0041, ami egyenértékű egy 10-es számértékkel. Ha a karakternek nincs számértéke, a metódus -1-et ad vissza. Ezzel a módszerrel kényelmes lehet nem negatív egész számokat visszaadni.

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

       }
   }
A kimenet a következő:
A '7' Unicode értéke 7 Az 'A' Unicode értéke 10 A '*' Unicode értéke -1

A ParseInt() használata

A ParseInt() egy másik módszer a karakter int-re való átalakítására. Széles körben használják más numerikus adattípusok, például lebegő, dupla és hosszú adattípusok közötti keresztkonvertálásra is. A ParseInt() legalább egy argumentumot és legfeljebb két argumentumot igényel. Az első argumentum a konvertálandó érték változó neve. A második argumentum a gyök, amely a decimális, oktális, hexadecimális stb. alapértékére utal. Mivel a ParseInt() képes az adattípusokat a számrendszer figyelembevételével is konvertálni, ez egy optimális választás a „numerikus” konvertálására. ” char to int Java nyelven. Két fontos szempontot kell szem előtt tartani, ha ezt a módszert szeretné használni. parseInt()A metódus csak String argumentumokat fogad el, ezért először a karaktert Stringgé kell konvertálnia ( a String.valueOf használatával ). A parseInt() nem használható az ábécék vagy más szimbólumok konvertálására, kivéve a char adattípusban tárolt numerikus értékeket. Ha nem numerikus értékeket ad meg, hibaüzenetet kap. Itt van egy Java példa:

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);
       }
   }
A kimenet a következő:
7
Próbáljuk meg a parseInt ton nem numerikus értéket használni:

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);
       }
   }
A kimenet a következő:
Kivétel a "main" szálban java.lang.NumberFormatException: A bemeneti karakterlánchoz: "q" itt: java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68) itt: java.base/java.lang.Integer.parseInt (Integer.java:652) itt: java.base/java.lang.Integer.parseInt(Integer.java:770) itt: charToInt.ValueOf.main(ValueOf.java:6)

'0' kivonása

Van egy nagyon egyszerű módja annak, hogy egy karaktert egész számmá alakítsunk. Ehhez egyszerűen vonja ki a karakterből a "0" karakter ASCII értékét. Például, hogy a "7" karakterből int 7 legyen:

int intValue = '7'-' 0 ';
Vegye figyelembe, hogy ez akkor működik, ha int értékeket kap, kizárólag egész karakterek esetén! Ha kivonja a „0”-t például „A”-ból, a metódus egyszerűen a nulla és az A betű ASCII-kódjai közötti különbséget adja vissza. Íme egy példa.

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

}
A kimenet a következő:
7 7 A 17 * -6

Következtetések

Ha a char-ot int-re kell konvertálnia Java-ban, használja az alábbi módszerek egyikét:
  • Implicit típusú casting //ASCII értékek lekérése
  • Character.getNumericValue()
  • Integer.parseInt() //párban String.valueOf())
  • A '0' //kivonása csak egész számértékeknél működik
Explicit típusú öntést is végezhet. Ez azonban redundáns művelet: nincs rá szükség, csak Javaban működik.
Hozzászólások
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION