CodeGym /Blogue Java /Random-PT /Java Converte Char em Int com Exemplos
John Squirrels
Nível 41
San Francisco

Java Converte Char em Int com Exemplos

Publicado no grupo Random-PT
Muitas vezes, as informações simbólicas que os usuários inserem no teclado precisam ser convertidas em números ou um programador deve obter números dela. Existem alguns métodos em Java para fazer isso. Neste artigo, descobriremos os métodos para nos ajudar a converter char em valor int.

Casting de tipo implícito

Conversão de tipos é o processo de converter um valor de um tipo de dados em um valor de outro tipo de dados. A fundição de tipos pode ser manual ou automática, dependendo dos tipos. Os tipos devem ser compatíveis. Em Java, temos dois tipos de typecasting, explícito e implícito. O implícito só pode ser feito se convertermos a variável do tipo "maior" para "menor" (digamos, de int para long). Se quisermos converter uma variável do tipo char para o tipo de dados int, na maioria das vezes precisamos obter seu valor equivalente da tabela ASCII. Cada alfabeto ou símbolo que pode ser inserido digitalmente tem um número inteiro único correspondente. Por exemplo, o alfabeto 'A' tem um código ASCII de 65. Pela conversão de tipo, estamos convertendo forçadamente o valor do caractere em seu código inteiro ASCII equivalente. Aqui está nosso char Java para int exemplo usando conversão de tipo.

Java char para int exemplo (usando typeCasting)


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 saída é:
O valor ASCII de 'A' é 65 O valor ASCII de 'a' é 97

Conversão de tipo explícito

Como vimos acima, no caso da conversão de char para int, não é necessário fazer isso explicitamente, pois 2 bytes são usados ​​para armazenar char e 4 bytes são usados ​​para armazenar int. Ou seja, o tipo int é "maior". No entanto, como exercício, podemos converter explicitamente uma variável char em um inteiro. Para esta operação, mencionamos (int) entre parênteses.

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 saída é:
O valor ASCII de 'A' é 65

Usando getNumericValue()

getNumericValue() funciona de forma semelhante à conversão de tipo, mas em vez de seguir a tabela ASCII, segue o padrão de codificação Unicode. ASCII só pode representar um conjunto específico de símbolos e caracteres, como letras latinas (além de alguns símbolos do alfabeto nacional), números, pontuação e caracteres de controle. O Unicode contém mais de um milhão de valores contendo letras e símbolos para todos os idiomas do mundo. Por exemplo, o valor de A em Unicode é \u0041, que equivale a um valor numérico de 10. Se o caractere não tiver um valor numérico, o método retornará -1. O uso desse método pode ser conveniente para retornar números inteiros não negativos.

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 saída é:
O valor Unicode de '7' é 7 O valor Unicode de 'A' é 10 O valor Unicode de '*' é -1

Usando ParseInt()

ParseInt() é outro método para converter o char em int. Também é amplamente usado para conversão cruzada entre outros tipos de dados numéricos, como float, double e long. ParseInt() requer no mínimo um argumento e no máximo dois argumentos. O primeiro argumento é o nome da variável do valor que estamos convertendo. O segundo argumento é a base que se refere ao valor base de decimal, octal, hexadecimal, etc. ” char para int em Java. Há dois pontos importantes a serem lembrados se você quiser usar esse método. parseInt()O método aceita apenas argumentos String, então você deve primeiro converter char em String (usando String.valueOf ). Você não pode usar parseInt() para converter os alfabetos ou outros símbolos, exceto valores numéricos armazenados no tipo de dados char. Se você inserir valores não numéricos, receberá um erro. Aqui está um exemplo de Java:

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 saída é:
7
Vamos tentar usar parseInt ton valor não numérico:

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 saída é:
Exceção no encadeamento "principal" java.lang.NumberFormatException: Para string de entrada: "q" em java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68) em java.base/java.lang.Integer.parseInt (Integer.java:652) em java.base/java.lang.Integer.parseInt(Integer.java:770) em charToInt.ValueOf.main(ValueOf.java:6)

Subtraindo '0'

Existe uma maneira muito simples de converter um caractere em um número inteiro. Para fazer isso, basta subtrair o valor ASCII do caractere "0" do caractere. Por exemplo, para obter int 7 do caractere "7":

int intValue = '7'-' 0 ';
Observe que isso funciona para obter valores int exclusivamente para caracteres inteiros! Se você subtrair '0' de, digamos, 'A', o método simplesmente retornará a diferença entre os códigos ASCII de zero e a letra A. Aqui está um exemplo.

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 saída é:
7 7 A 17 * -6

Conclusões

Se você precisar converter char para int em Java, use um dos métodos:
  • Conversão implícita de tipo //obtendo valores ASCII
  • Character.getNumericValue()
  • Integer.parseInt() //em par com String.valueOf())
  • Subtrair '0' // funciona apenas para valores numéricos inteiros
Você também pode fazer conversão de tipo explícito. No entanto, esta é uma operação redundante: não é necessária, mas apenas funciona em Java.
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION