Conteúdo do Curso
Fundamentos de Java
Fundamentos de Java
Operações Matemáticas em Char
Por que operações matemáticas são possíveis no tipo char?
O tipo de dado char
é bastante interessante. Ele armazena caracteres, mas também é possível realizar operações com esse tipo de dado.
Qual será o resultado da execução deste código?
Main
package com.example; public class Main { public static void main(String[] args) { char firstLetter = 'A'; char secondLetter = '('; // We use type casting here to convert value from `int` to `char` char result = (char) (firstLetter + secondLetter); System.out.println(result); } }
Pode-se pensar que o resultado seria A(
, mas como podemos ver, o resultado é i
. Por que isso acontece? char
não é um tipo de dado puramente de caractere; ele utiliza caracteres da tabela ASCII. O caractere A
corresponde ao número 65 na tabela, enquanto o caractere (
corresponde ao número 40. Como você deve ter imaginado, o caractere i
corresponde a 105, pois 65 + 40 = 105.
É importante saber disso porque permite operar com o tipo char
de forma excelente e flexível.
Aqui está um link para a tabela ASCII.
Conversão de Tipos
No código acima, você pode ter notado esta sintaxe incomum:
python
Mas por que o (char)
é necessário? A operação de adição retorna um resultado do tipo int
porque soma os códigos numéricos dos caracteres. Para armazenar esse resultado em uma variável do tipo char
, é necessária uma conversão explícita. É exatamente isso que o construto (char)
faz—ele converte o valor numérico de volta para um caractere.
No nosso exemplo, o resultado da soma é o número 105. O construto (char)
converte esse número no caractere correspondente ao código 105 na tabela ASCII, que neste caso é o caractere i
.
Obrigado pelo seu feedback!