Cum pot converti un char în int în Java? [duplicat] (Programare, Java, Char, Conversie De Tip, Int)

Haim Lvov a intrebat.

(Sunt nou în programarea Java)

Am de exemplu:

char x = '9';

și am nevoie să obțin numărul din apostrofuri, cifra 9 în sine. am încercat să fac următoarele,

char x = 9;
int y = (int)(x);

dar nu a funcționat.

Deci, ce ar trebui să fac pentru a obține cifra din apostrofuri?

4 răspunsuri
khelwood

Tabelul ASCII este aranjat astfel încât valoarea caracterului '9' este cu nouă mai mare decât valoarea lui '0'; valoarea caracterului '8' este cu opt mai mare decât valoarea lui '0'; și așa mai departe.

Astfel, puteți obține valoarea în int a unui char cu cifră zecimală prin scăderea lui '0'.

char x = '9';
int y = x - '0'; // gives the int value 9

Comentarii

  • @HaimLvov: Pentru a elabora… Aruncați o privire la tabelul ASCII oriunde pe internet. Orice char are valoarea numerică a valorii sale zecimale echivalente în acel tabel. Deci poți scădea oricare din oricare pentru a obține un rezultat numeric. Se întâmplă, în mod natural, ca caracterele de la 0 la 9 să fie în ordine, așa că matematica funcționează. –  > Por David.
  • mai multe despre stackoverflow.com/questions/3195028/… –  > Por Andrew Tobilko.
  • @David – Este acest răspuns mai bun decât Character.getNumericValue(x) în ceea ce privește performanța ? –  > Por MasterJoe.
  • În ASCII ‘0’ = 48, 1=’49’ etc. Am găsit o explicație utilă despre această teorie aici: beginnersbook.com/2019/04/java-char-to-int-conversion –  > Por nanospeck.
azro

Eu am char '9', , se va stoca codul ASCII al acestuia, deci pentru a obține valoarea int, ai 2 modalități

char x = '9';
int y = Character.getNumericValue(x);   //use a existing function
System.out.println(y + " " + (y + 1));  // 9  10

sau

char x = '9';
int y = x - '0';                        // substract '0' code to get the difference
System.out.println(y + " " + (y + 1));  // 9  10

Și de fapt, funcționează și asta :

char x = 9;
System.out.println(">" + x + "<");     //>  < prints a horizontal tab
int y = (int) x;
System.out.println(y + " " + (y + 1)); //9 10

Se stochează valoarea 9 cod, care corespunde unui horizontal tab (puteți vedea când se tipărește ca String, , dar îl puteți folosi și ca int așa cum vedeți mai sus

2787184

Puteți utiliza metodele statice din clasa Character pentru a obține o valoare numerică din char.

char x = '9';

if (Character.isDigit(x)) { // Determines if the specified character is a digit.
    int y = Character.getNumericValue(x); //Returns the int value that the 
                                          //specified Unicode character represents.
    System.out.println(y);
}

Amol Raje

Dacă doriți să obțineți valoarea ASCII a unui caracter sau doar să îl convertiți într-un int, trebuie să faceți cast dintr-un char într-un int.

Ce înseamnă casting? Casting este atunci când convertim în mod explicit de la un tip de date primitiv sau o clasă la altul. Iată un scurt exemplu.

public class char_to_int
{
  public static void main(String args[])
  {
       char myChar = 'a';
       int  i = (int) myChar; // cast from a char to an int
       System.out.println ("ASCII value - " + i);
  }

În acest exemplu, avem un caracter („a”) și îl transformăm într-un întreg. Imprimarea acestui întreg ne va da valoarea ASCII a lui „a”.