how convert char int java
Neste tutorial, aprenderemos as diferentes maneiras de converter valores do tipo de dados primitivo char para int em Java, juntamente com perguntas frequentes e exemplos:
Estaremos cobrindo o uso dos seguintes métodos fornecidos por diferentes classes Java para converter caracteres em int:
- Cast de tipo implícito (obtendo valores ASCII)
- getNumericValue ()
- parseInt () com String.valueOf ()
- Subtraindo '0'
=> Verifique aqui para ver A-Z dos tutoriais de treinamento Java
O que você aprenderá:
Converter Char para int em Java
Java tem tipos de dados primitivos como int, char, long, float, etc. Em alguns cenários, é necessário realizar operações em valores numéricos, onde os valores das variáveis são especificados no tipo de dados de char.
Nesses casos, temos que primeiro converter esses valores de caracteres em valores numéricos, ou seja, valores int e, em seguida, executar as ações desejadas, cálculos sobre eles.
Por exemplo, em alguns sistemas de software, certas operações precisam ser realizadas ou algumas decisões devem ser tomadas com base nas classificações do cliente recebidas no formulário de feedback do cliente, que vem como o tipo de dados de caractere.
Nesses casos, esses valores precisam ser primeiro convertidos para o tipo de dados int para realizar mais operações numéricas com esses valores. Java fornece vários métodos para converter caracteres em valores inteiros. Vejamos esses métodos em detalhes.
# 1) Uso de conversão de tipo implícito, ou seja, obtenção do valor ASCII do caractere
Em Java, se você atribuir um valor de tipo de dados menor a uma variável da variável de tipo de dados maior compatível, o valor será promovido automaticamente, ou seja, será convertido implicitamente para uma variável do tipo de dados maior.
Por exemplo, se atribuirmos uma variável do tipo int a uma variável do tipo long, o valor int será automaticamente convertido para o tipo de dados long.
A conversão de tipo implícito acontece para a variável de tipo de dados ‘char’ também, ou seja, quando atribuímos o seguinte valor da variável char ao tipo de dados da variável ‘int’, então o valor da variável char é convertido para um int automaticamente pelo compilador.
Por exemplo,
char a = ‘1’;
int b = a;
Aqui, char ‘a’ é implicitamente typecast para o tipo de dados int.
Se imprimirmos o valor de 'b', você verá as impressões do console '49'. Isso ocorre porque quando atribuímos o valor da variável char 'a' à variável int 'b', na verdade recuperamos o valor ASCII de '1' que é '49'.
No exemplo de programa Java a seguir, vamos ver como converter caractere em int por meio de typecast implícito, ou seja, obter o valor ASCII da variável 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); } }
Aqui está o resultado do programa:
Valor ASCII de P -> 80
Valor ASCII de p -> 112
Valor ASCII de 2 -> 50
Valor ASCII de @ -> 64
qa perguntas e respostas da entrevista do líder de teste
No programa acima, podemos ver os valores ASCII de diferentes valores da variável char da seguinte maneira:
Valor ASCII de P -> 80
Valor ASCII de p -> 112
A diferença nos valores de ‘P’ e ‘p’ é porque os valores ASCII são diferentes para letras maiúsculas e minúsculas.
Da mesma forma, obtemos valores ASCII para valores numéricos e caracteres especiais, assim como a seguir:
Valor ASCII de 2 -> 50
Valor ASCII de @ -> 64
# 2) Usando o método Character.getNumericValue ()
A classe Character tem métodos de sobrecarga estática de getNumericValue (). Este método retorna um valor do tipo de dados int representado por um caractere Unicode especificado.
Aqui está a assinatura do método getNumericValue () para o tipo de dados char:
public static int getNumericValue (char ch)
Este método estático recebe um argumento do tipo de dados char e retorna o valor int do tipo de dados que o argumento ‘ch’ representa.
Por exemplo, o caractere ‘ u216C’ retorna um número inteiro com um valor de 50.
Parâmetros:
ch: Este é um caractere que precisa ser convertido para int.
Retorna:
Este método retorna o valor numérico de 'ch', como um valor não negativo do tipo de dados int. Este método retorna -2 se 'ch' tiver um valor numérico que não seja um número inteiro não negativo. Retorna -1 se ‘ch’ não tiver um valor numérico.
Vamos entender o uso deste método Character.getNumericValue () para converter caracteres em um valor inteiro.
Vamos considerar o cenário em que um dos sistemas de software do banco, onde o gênero é especificado no tipo de dados 'char' e com base no código de gênero, alguma decisão precisa ser feita, como a atribuição da taxa de juros.
Para isso, o código de gênero precisa ser convertido do tipo de dados char para int. Essa conversão é feita usando o método Character.getNumericValue () no programa de exemplo abaixo.
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 '); } } }
Aqui está o resultado do programa:
genderCode—> 1
Bem-vindo, nosso banco está oferecendo uma taxa de juros especial sobre depósitos fixos para nossas clientes mulheres: 7,0%.
Apresse-se, esta oferta é válida apenas por um período limitado.
Portanto, no programa acima, estamos convertendo o valor da variável char gender para o valor int para obter o valor int na variável genderCode.
Caracteres gênero = ‘1’;
int genderCode = Character. getNumericValue (Gênero sexual);
Então, quando imprimimos no console, System. Fora .println (“genderCode ->” + genderCode); então vemos o valor int no console como abaixo:
genderCode—> 1
O mesmo valor de variável é passado para alternar o loop de caixa interruptor (genderCode) para futuras tomadas de decisão.
# 3) Usando o método Integer.parseInt () e String.ValueOf ()
Este método estático parseInt () é fornecido pela classe de invólucro da classe Integer.
Aqui está a assinatura do método de Integer.parseInt () :
public static int parseInt (String str) lança NumberFormatException
Este método analisa o argumento String, ele considera String como um inteiro decimal com sinal. Todos os caracteres do argumento String devem ser dígitos decimais. A única exceção é que o primeiro caractere pode ser um sinal ASCII menos ‘-’ e mais ‘+’ para uma indicação de um valor negativo e um valor positivo, respectivamente.
Aqui, o parâmetro ‘str’ é uma String com a representação int a ser analisada e retorna o valor inteiro representado pelo argumento em decimal. Quando a String não contém um número inteiro analisável, o método lança uma exceção NumberFormatException
Como visto na assinatura do método para parseInt ( Fragmento str), o argumento a ser passado para o método parseInt () é do tipo de dados String. Portanto, é necessário primeiro converter um valor char em String e depois passar esse valor String para o método parseInt (). Para isso, é usado o método String.valueOf ().
valueOf () é um método de sobrecarga estática da classe String que é usado para converter argumentos de tipos de dados primitivos como int, float para o tipo de dados String.
public static String valueOf (int i)
Este método estático recebe um argumento do tipo de dados int e retorna a representação de string do argumento int.
Parâmetros:
i: Este é um número inteiro.
Retorna:
A representação de string do argumento int.
Portanto, estamos usando uma combinação dos métodos Integer.parseInt () e String.valueOf (). Vamos ver o uso desses métodos no programa de exemplo a seguir. Este programa de amostra [1] primeiro converte o valor de classificação do cliente do tipo de dados de caractere para inteiro e [2], em seguida, imprime a mensagem apropriada no console usando a instrução 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.'); } } }
Aqui está o resultado do programa:
Valor da string de customerRatings -> 7
valor int de customerRatings -> 7
Parabéns! Nosso cliente está muito satisfeito com nossos serviços.
No código de exemplo acima, usamos o método String.valueOf () para converter o caractere em um valor do tipo de dados String.
char customerRatingsCode = '7'; String customerRatingsStr = String.valueOf(customerRatingsCode);
Agora, este valor String é convertido para o tipo de dados int usando o método Integer.parseInt (), passando customerRatingsStr como um argumento.
int customerRatings = Integer.parseInt(customerRatingsStr); System.out.println('customerRatings int value --->'+customerRatings); // Expected to print int value 7
Este valor int Avaliação do cliente é usado posteriormente na instrução if-else para comparar e imprimir a mensagem necessária no console.
# 4) Converta Char para int em Java subtraindo ‘0’
Vimos a conversão de character em int usando typecasting implícito. Isso retorna o valor ASCII do caractere. Por exemplo. O valor ASCII de 'P' retorna 80 e o valor ASCII de '2' retorna 50.
No entanto, para recuperar o valor int de '2' como 2, o valor ASCII de '0' do caractere precisa ser subtraído do caractere. Por exemplo. Para recuperar o int 2 do caractere '2',
int intValue = '2'- '0'; System.out.println('intValue?”+intValue); This will print intValue->2.
Observação :Isso é útil para obter valores int para caracteres de valor numérico apenas, ou seja, 1, 2, etc., e não é útil com valores de texto como 'a', 'B' etc., pois retornará apenas a diferença entre os valores ASCII de '0 'e aquele personagem.
Vamos dar uma olhada no programa de amostra para usar este método de subtrair o valor ASCII de Zero, ou seja, '0' do valor do caractere ASCII.
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); } }
Aqui está o resultado do programa:
Valor ASCII de 0 -> 48
Valor ASCII de 1 -> 49
Valor inteiro de 0 -> 0
Valor inteiro de 1 -> 1
Valor inteiro de 7 -> 7
Valor inteiro de a -> 49
classificação rápida em c ++
No programa acima, se atribuirmos char '0' e '1' ao valor do tipo de dados int, obteremos valores ASCII desses caracteres devido à conversão implícita. Então, quando imprimimos esses valores, conforme visto nas instruções abaixo:
int int0 = char1; System.out.println('ASCII value of 0 --->'+int0); int0 = char2; System.out.println('ASCII value of 1 --->'+int0);
Obteremos a saída como:
Valor ASCII de 0 -> 48
Valor ASCII de 1 -> 49
Portanto, para obter um valor inteiro representando o mesmo valor de char, estamos subtraindo o valor ASCII de ‘0’ dos caracteres que representam os valores numéricos.
int int2 = char2 - '0'; .
Aqui, estamos subtraindo os valores ASCII de '0' do valor ASCII '1'.
ou seja, 49-48 = 1. Portanto, quando imprimimos no console char2
System.out.println (“Valor inteiro de“ + char2 + ”->” + int2);
Obtemos a saída como:
Valor inteiro de 1 -> 1
Com isso, cobrimos as várias maneiras de converter caracteres Java em um valor inteiro com a ajuda de programas de amostra. Portanto, para converter caractere em int em Java, qualquer um dos métodos cobertos nos códigos de amostra acima pode ser usado em seu programa Java.
Agora, vamos dar uma olhada em algumas das perguntas mais frequentes sobre a conversão de caractere Java para int.
Perguntas frequentes sobre Char To Int Java
P # 1) Como faço para converter um char em um int?
Responda:
Em Java, char pode ser convertido em valor int usando os seguintes métodos:
- Cast de tipo implícito (obtendo valores ASCII)
- Character.getNumericValue ()
- Integer.parseInt () com String.valueOf ()
- Subtraindo '0'
Q # 2) O que é um char em Java?
Responda: O tipo de dados char é um tipo de dados primitivo Java com um único caractere Unicode de 16 bits. O valor é atribuído como um único caractere entre aspas simples ‘’. Por exemplo, char a = ‘A’ ou char a = ‘1’ etc.
Q # 3) Como você inicializa um char em Java?
Responda: A variável char é inicializada atribuindo um único caractere entre aspas simples, ou seja, ‘’. Por exemplo, char x = ‘b’, char x = ‘@’, char x = ‘3’ etc.
Q # 4) Qual é o valor int de char A?
Responda: Se char 'A' for atribuído à variável int, então char será implicitamente promovido para int e se o valor for impresso, ele retornará o valor ASCII do caractere 'A', que é 65.
Por exemplo,
int x= 'A'; System.out.println(x);
Portanto, isso imprimirá 65 no console.
Conclusão
Neste tutorial, vimos as seguintes maneiras de converter valores do tipo de dados Java char em int.
- Cast de tipo implícito (obtendo valores ASCII)
- Character.getNumericValue ()
- Integer.parseInt () com String.valueOf ()
- Subtraindo '0'
Cobrimos cada uma dessas maneiras em detalhes e demonstramos o uso de cada método com a ajuda de um programa Java de amostra.
=> Verifique TODOS os tutoriais Java aqui
Leitura recomendada
- Java Integer e classe Java BigInteger com exemplos
- Tutorial de JAVA para iniciantes: mais de 100 tutoriais práticos em vídeo Java
- TreeMap em Java - Tutorial com exemplos de TreeMap em Java
- Como converter Java String para Int - Tutorial com exemplos
- Tutorial de Java Float com exemplos de programação
- Instrução Java Break - Tutorial com exemplos
- Java Enum: Tutorial de enumeração Java com exemplos
- Método Java String length () com exemplos