how convert char int java
En aquest tutorial aprendrem les diferents maneres de convertir valors del tipus de dades primitiu char a int a Java juntament amb preguntes freqüents i exemples:
Tractarem l'ús dels mètodes següents proporcionats per diferents classes de Java per convertir caràcters a int:
- Emissió de tipus implícita (obtenint valors ASCII)
- getNumericValue ()
- parseInt () amb String.valueOf ()
- Restar '0'
=> Consulteu aquí per veure tutorials de formació A-Z de Java
Què aprendreu:
Converteix Char a int a Java
Java té tipus de dades primitius com int, char, long, float, etc. En alguns escenaris, és necessari realitzar operacions amb valors numèrics, on els valors variables s’especifiquen al tipus de dades de char.
En aquests casos, primer hem de convertir aquests valors de caràcters a valors numèrics, és a dir, valors int, i després realitzar les accions desitjades, càlculs sobre aquests.
Per exemple, en alguns sistemes de programari, cal realitzar certes operacions o prendre algunes decisions en funció de les valoracions dels clients rebudes al formulari de comentaris dels clients que apareix com a tipus de dades de caràcter.
En aquests casos, aquests valors s'han de convertir primer a tipus de dades int per realitzar operacions numèriques sobre aquests valors. Java proporciona diversos mètodes per convertir el caràcter a un valor int. Vegem aquests mètodes en detall.
# 1) Ús de Cast implícit, és a dir, obtenir el valor ASCII del personatge
A Java, si assigneu un valor de tipus de dades més petit a una variable de la variable de tipus de dades més gran compatible, el valor es promociona automàticament, és a dir, implícitament es tipografia a una variable del tipus de dades més gran.
Per exemple, si assignem una variable de tipus int a una variable de tipus long, el valor int es converteix automàticament en un tipus de dades llarg.
El càlcul de tipus implícit passa també per a la variable de tipus de dades 'char', és a dir, quan assignem el següent valor de variable char al tipus de dades 'int', el compilador converteix el valor de la variable char automàticament en un int.
Per exemple,
char a = '1';
int b = a;
Aquí, el caràcter 'a' s'implica implícitament al tipus de dades int.
format de casos de prova en proves de programari
Si imprimim el valor de 'b', veureu les impressions de la consola '49'. Això es deu al fet que quan assignem el valor de la variable char 'a' a la variable int 'b', realment recuperem el valor ASCII de '1' que és '49'.
Al següent programa de mostra de Java, vegem com convertir el caràcter a int mitjançant tipografia implícita, és a dir, obtenir el valor ASCII de la variable char.
package com.softwaretestinghelp; /** * This class demonstrates sample code to convert char to int Java program * using Implicit type casting i.e. ASCII values * * @author * */ public class CharIntDemo1 { public static void main(String[] args) { // Assign character 'P' to char variable char1 char char1 = 'P'; // Assign character 'p' to char variable char2 char char2 = 'p'; // Assign character '2' to char variable char3 char char3 = '2'; // Assign character '@' to char variable char4 char char4 = '@'; // Assign character char1 to int variable int1 int int1 = char1; // Assign character char2 to int variable int2 int int2 = char2; // Assign character char3 to int variable int3 int int3 = char3; // Assign character char2 to int variable int4 int int4 = char4; //print ASCII int value of char System.out.println('ASCII value of '+char1+' -->'+int1); System.out.println('ASCII value of '+char2+' -->'+int2); System.out.println('ASCII value of '+char3+' -->'+int3); System.out.println('ASCII value of '+char4+' -->'+int4); } }
Aquí teniu el programa de sortida:
Valor ASCII de P -> 80
Valor ASCII de p -> 112
Valor ASCII de 2 -> 50
Valor ASCII de @ -> 64
Al programa anterior, podem veure els valors ASCII de diferents valors de variables de caràcters de la següent manera:
Valor ASCII de P -> 80
Valor ASCII de p -> 112
La diferència de valors per a 'P' i 'p' es deu al fet que els valors ASCII són diferents per a majúscules i minúscules.
De la mateixa manera, obtenim valors ASCII per a valors numèrics i caràcters especials, així com els següents:
Valor ASCII de 2 -> 50
Valor ASCII de @ -> 64
# 2) Ús del mètode Character.getNumericValue ()
La classe Character té mètodes de sobrecàrrega estàtica de getNumericValue (). Aquest mètode retorna un valor de tipus de dades int representat per un caràcter Unicode especificat.
Aquí teniu la signatura del mètode getNumericValue () per al tipus de dades char:
public static int getNumericValue (char ch)
Aquest mètode estàtic rep un argument del tipus de dades char i retorna el valor int del tipus de dades que representa l'argument 'ch'.
Per exemple, el caràcter ' u216C' retorna un nombre enter amb un valor de 50.
Paràmetres:
ch: es tracta d'un caràcter que s'ha de convertir a int.
Devolucions:
Aquest mètode retorna el valor numèric de 'ch', com a valor no negatiu del tipus de dades int. Aquest mètode retorna -2 si 'ch' té un valor numèric que no és un enter no negatiu. Retorna -1 si 'ch' no té un valor numèric.
Comprenem l’ús d’aquest mètode Character.getNumericValue () per convertir el caràcter a un valor int.
Considerem l'escenari en què un dels sistemes de programari bancari, en què s'especifica el gènere en el tipus de dades 'char' i en funció del codi de gènere, s'ha de prendre alguna decisió com assignar un tipus d'interès.
Per a això, cal convertir el codi de gènere de tipus de dades char a int. Aquesta conversió es fa mitjançant el mètode Character.getNumericValue () al programa de mostra següent.
package com.softwaretestinghelp; /** * This class demonstrates sample code to convert char to int Java program * using Character.getNumericValue() * * @author * */ public class CharIntDemo2 { public static void main(String[] args) { // Assign character '1' to char variable char1 char gender = '1'; //Send gender as an argument to getNumericValue() method // to parse it to int value int genderCode = Character.getNumericValue(gender); // Expected to print int value 1 System.out.println('genderCode--->'+genderCode); double interestRate = 6.50; double specialInterestRate = 7; switch (genderCode) { case 0 ://genderCode 0 is for Gender Male System.out.println('Welcome ,our bank is offering attractive interest rate on Fixed deposits :'+ interestRate +'%'); break; case 1 ://genderCode 1 is for Gender Female System.out.println(' Welcome, our bank is offering special interest rate on Fixed deposits '+ 'for our women customers:'+specialInterestRate+'% .'+'
'+' Hurry up, this offer is valid for limited period only.'); break; default : System.out.println('Please enter valid gender code '); } } }
Aquí teniu el programa de sortida:
sexCode-> 1
Benvingut, el nostre banc ofereix un tipus d'interès especial sobre dipòsits fixos per a les nostres dones dones: un 7,0%.
Afanyeu-vos, aquesta oferta només és vàlida per un període limitat.
Per tant, al programa anterior, estem convertint el valor de gènere de variable variable en valor int per obtenir el valor int a la variable genderCode.
char gènere = '1';
int genderCode = Personatge. getNumericValue (gènere);
Per tant, quan imprimim a la consola, System. fora .println ('genderCode ->' + genderCode); a continuació, veiem el valor int a la consola com es mostra a continuació:
sexCode-> 1
Es passa el mateix valor variable per canviar el bucle de majúscules i minúscules interruptor (genderCode) per a la presa de decisions posteriors.
# 3) Ús del mètode Integer.parseInt () i String.ValueOf ()
Aquest mètode estàtic parseInt () és proporcionat per la classe wrapper Integer class.
Aquí teniu el mètode de signatura de Integer.parseInt () :
public static int parseInt (String str) llança NumberFormatException
Aquest mètode analitza l'argument String, considera String com un enter decimal signat. Tots els caràcters de l’argument String han de ser dígits decimals. L'única excepció és que es permet que el primer caràcter sigui un signe menys ASCII '-' i el signe més '+' per indicar un valor negatiu i un valor positiu respectivament.
Aquí, el paràmetre ‘str’ és una cadena que té la representació int que s’ha d’analitzar i retorna el valor enter representat per l’argument en decimal. Quan la cadena no conté un nombre enter analitzable, el mètode genera una excepció NumberFormatException
Com es veu al mètode de signatura per parseInt ( Corda str), l'argument que s'ha de passar al mètode parseInt () és del tipus de dades String. Per tant, cal convertir primer un valor de caràcter a cadena i després passar aquest valor de cadena al mètode parseInt (). Per a això s'utilitza el mètode String.valueOf ().
Preguntes sobre entrevistes c ++ per a professionals experimentats
valueOf () és un mètode de sobrecàrrega estàtica de la classe String que s’utilitza per convertir arguments de tipus de dades primitius com int, float a tipus de dades String.
public static String valueOf (int i)
Aquest mètode estàtic rep un argument de tipus de dades int i retorna la representació de cadenes de l'argument int.
Paràmetres:
i: Aquest és un nombre enter.
Devolucions:
Representació de cadenes de l'argument int.
Per tant, fem servir una combinació del mètode Integer.parseInt () i String.valueOf (). Vegem l’ús d’aquests mètodes al programa de mostra següent. Aquest programa de mostra [1] converteix primer el valor de classificació del client del tipus de dades de caràcters a enter i [2] després imprimeix el missatge adequat a la consola mitjançant la sentència if-else.
package com.softwaretestinghelp; /** * This class demonstrates sample code to convert char to int Java program * using Integer.parseInt() and String.valueOf() methods * * @author * */ public class CharIntDemo3 { public static void main(String[] args) { // Assign character '7' to char variable customerRatingsCode char customerRatingsCode = '7'; //Send customerRatingsCode as an argument to String.valueOf method //to parse it to String value String customerRatingsStr = String.valueOf(customerRatingsCode); System.out.println('customerRatings String value --->'+customerRatingsStr); // Expected to print String value 7 //Send customerRatingsStr as an argument to Integer.parseInt method //to parse it to int value int customerRatings = Integer.parseInt(customerRatingsStr); System.out.println('customerRatings int value --->'+customerRatings); // Expected to print int value 7 if (customerRatings>=7) { System.out.println('Congratulations! Our customer is very happy with our services.'); }else if (customerRatings>=5) { System.out.println('Good , Our customer is satisfied with our services.'); }else if(customerRatings>=0) { System.out.println('Well, you really need to work hard to make our customers happy with our services.'); }else { System.out.println('Please enter valid ratings value.'); } } }
Aquí teniu el programa de sortida:
Valor de la cadena CustomerRatings -> 7
valor int CustomerRatings -> 7
Enhorabona! El nostre client està molt content amb els nostres serveis.
Al codi de mostra anterior, hem utilitzat el mètode String.valueOf () per convertir el caràcter a un valor de tipus de dades String.
char customerRatingsCode = '7'; String customerRatingsStr = String.valueOf(customerRatingsCode);
Ara, aquest valor de cadena es converteix en tipus de dades int mitjançant el mètode Integer.parseInt () passant clientRatingsStr com a argument.
int customerRatings = Integer.parseInt(customerRatingsStr); System.out.println('customerRatings int value --->'+customerRatings); // Expected to print int value 7
Aquest valor int classificació del client s'utilitza més a la sentència if-else per comparar i imprimir el missatge requerit a la consola.
# 4) Converteix el caràcter en int a Java restant '0'
Hem vist com es converteix el caràcter en int mitjançant tipografia implícita. Això retorna el valor ASCII del caràcter. Per exemple. El valor ASCII de 'P' retorna 80 i el valor ASCII de '2' retorna 50.
Tanmateix, per recuperar el valor int de '2' com a 2, cal restar el valor ASCII del caràcter '0' del caràcter. Per exemple. Per recuperar int 2 del caràcter '2',
int intValue = '2'- '0'; System.out.println('intValue?”+intValue); This will print intValue->2.
Nota :Això és útil per obtenir valors int només per als caràcters de valor numèric, és a dir, 1, 2, etc., i no és útil amb valors de text com 'a', 'B' etc., ja que només retornarà la diferència entre els valors ASCII de '0 'i aquest personatge.
Fem una ullada al programa de mostra per utilitzar aquest mètode per restar el valor ASCII de zero, és a dir, ‘0’ del valor ASCII del caràcter.
package com.softwaretestinghelp; /** * This class demonstrates sample code to convert char to int Java program * using ASCII values by subtracting ASCII value of '0'from ASCII value of char * * @author * */ public class CharIntDemo4 { public static void main(String[] args) { // Assign character '0' to char variable char1 char char1 = '0'; // Assign character '1' to char variable char2 char char2 = '1'; // Assign character '7' to char variable char3 char char3 = '7'; // Assign character 'a' to char variable char4 char char4 = 'a'; //Get ASCII value of '0' int int0 = char1; System.out.println('ASCII value of 0 --->'+int0); int0 = char2; System.out.println('ASCII value of 1 --->'+int0); // Get int value by finding the difference of the ASCII value of char1 and ASCII value of 0. int int1 = char1 - '0'; // Get int value by finding the difference of the ASCII value of char2 and ASCII value of 0. int int2 = char2 - '0'; // Get int value by finding the difference of the ASCII value of char3 and ASCII value of 0. int int3 = char3 - '0'; // Get int value by finding the difference of the ASCII value of char4 and ASCII value of 0. int int4 = char4 - '0'; //print ASCII int value of char System.out.println('Integer value of '+char1+' -->'+int1); System.out.println('Integer value of '+char2+' -->'+int2); System.out.println('Integer value of '+char3+' -->'+int3); System.out.println('Integer value of '+char4+' -->'+int4); } }
Aquí teniu el programa de sortida:
Valor ASCII de 0 -> 48
Valor ASCII d'1 -> 49
Valor enter de 0 -> 0
Valor enter 1 -> 1
Valor enter de 7 -> 7
Valor enter d'un -> 49
Al programa anterior, si assignem els caràcters '0' i '1' al valor del tipus de dades int, obtindrem valors ASCII d'aquests caràcters a causa de la conversió implícita. Per tant, quan imprimim aquests valors tal com es veu a les afirmacions següents:
int int0 = char1; System.out.println('ASCII value of 0 --->'+int0); int0 = char2; System.out.println('ASCII value of 1 --->'+int0);
Obtenirem la sortida com:
Valor ASCII de 0 -> 48
Valor ASCII d'1 -> 49
Per tant, per obtenir un valor enter que representi el mateix valor que el de char, restem el valor ASCII de ‘0’ dels caràcters que representen valors numèrics.
int int2 = char2 - '0'; .
Aquí restem valors ASCII de '0' del valor ASCII '1'.
és a dir, 49-48 = 1. Per tant, quan imprimim a la consola char2
System.out.println ('Valor enter de' + char2 + '->' + int2);
Obtenim la sortida com:
Valor enter 1 -> 1
Amb això, hem cobert les diverses maneres de convertir el caràcter Java a un valor enter amb l'ajut de programes de mostra. Per tant, per convertir el caràcter a int a Java, es pot utilitzar qualsevol dels mètodes coberts als codis de mostra anteriors al vostre programa Java.
Ara, examinem algunes de les preguntes més freqüents sobre la conversió de caràcters a int de Java.
Preguntes més freqüents sobre Java de Char To Int
P # 1) Com puc convertir un caràcter a un int?
Resposta:
A Java, char es pot convertir en valor int mitjançant els mètodes següents:
- Emissió de tipus implícita (obtenint valors ASCII)
- Character.getNumericValue ()
- Integer.parseInt () amb String.valueOf ()
- Restar '0'
Q # 2) Què és un caràcter a Java?
Resposta: El tipus de dades char és un tipus de dades primitiu Java que té un únic caràcter Unicode de 16 bits. El valor s’assigna com un sol caràcter inclòs amb una única cometa ‘’. Per exemple, char a = 'A' o char a = '1' etc.
P # 3) Com inicialitza un caràcter a Java?
Resposta: La variable char s’inicialitza assignant un sol caràcter inclòs entre cometes simples, és a dir, ‘’. Per exemple, char x = 'b', char x = '@', char x = '3' etc.
Q # 4) Quin és el valor int del caràcter A?
Resposta: Si el caràcter «A» s’assigna a la variable int, aleshores el caràcter s’incrementarà implícitament a int i si s’imprimeix el valor, retornarà el valor ASCII del caràcter «A» que és 65.
Per exemple,
int x= 'A'; System.out.println(x);
Per tant, això imprimirà 65 a la consola.
Conclusió
En aquest tutorial, hem vist les següents maneres de convertir els valors del tipus de dades Java char a int.
implementació d’arbre binari c ++
- Emissió de tipus implícita (obtenint valors ASCII)
- Character.getNumericValue ()
- Integer.parseInt () amb String.valueOf ()
- Restar '0'
Hem tractat detalladament cadascuna d’aquestes formes i hem demostrat l’ús de cada mètode amb l’ajut d’un exemple de programa Java.
=> Consulteu TOTS els tutorials de Java aquí
Lectura recomanada
- Java Integer i Java BigInteger Class amb exemples
- Tutorial JAVA per a principiants: més de 100 tutorials pràctics de vídeo Java
- TreeMap a Java: tutorial amb exemples de Java TreeMap
- Com convertir Java String a Int - Tutorial amb exemples
- Tutorial Java Float amb exemples de programació
- Declaració de Java Break: tutorial amb exemples
- Java Enum: Tutorial d’enumeració de Java amb exemples
- Java String length () Mètode amb exemples