Mai jos este un fragment de cod,
int a = 1;
char b = (char) a;
System.out.println(b);
Dar ceea ce obțin este o ieșire goală.
int a = '1';
char b = (char) a;
System.out.println(b);
Voi obține 1 ca ieșire.
Poate cineva să explice acest lucru? Și dacă vreau să convertesc un int într-un char ca în primul fragment, ce ar trebui să fac?
int a = 1;
char b = (char) a;
System.out.println(b);
va imprima caracterul cu valoarea ascii 1 (caracterul de început de antet, care nu este imprimabil).
int a = '1';
char b = (char) a;
System.out.println(b);
va imprima caracterul cu valoarea ascii 49 (cel care corespunde la '1').
Dacă doriți să convertiți o cifră (0-9), puteți adăuga 48 la ea și să o distribuiți, sau ceva de genul Character.forDigit(a, 10);
.
Dacă doriți să convertiți un int
ca valoare ascii, puteți folosi Character.toChars(48)
, de exemplu.
int a = 1;
char b = (char) a;
System.out.println(b);
hola, Ei bine, am trecut prin aceeași problemă, dar ceea ce am făcut a fost următorul cod.
int a = 1
char b = Integer.toString(a).charAt(0);
System.out.println(b);
Cu acest lucru veți obține valoarea zecimală ca un tip char. Am folosit charAt() cu indexul 0 pentru că singura valoare în acel String este 'a' și după cum știți, poziția lui 'a' în acel String începe de la 0.
Scuze dacă engleza mea nu este bine explicată, sper să vă ajute.
În java, un char este un int. Primul dvs. fragment tipărește caracterul corespunzător valorii 1 în schema de codificare implicită a caracterelor (care este probabil Unicode). Caracterul Unicode U+0001 este un caracter care nu se tipărește, motiv pentru care nu vedeți nicio ieșire.
Dacă doriți să imprimați caracterul '1', puteți căuta valoarea lui '1' în schema de codificare pe care o utilizați. În Unicode, aceasta este 49 (la fel ca în ASCII). Dar acest lucru va funcționa numai pentru cifrele 0-9.
Ar fi mai bine să folosiți un String în loc de un char și să folosiți metoda încorporată în Java toString()
:
int a = 1;
String b = toString(a);
System.out.println(b);
Aceasta va funcționa indiferent de codificarea sistemului dumneavoastră și va funcționa pentru numere cu mai multe cifre.