Java: A Classe Character

Assim como outros tipos, a Character é uma classe do tipo wrapper. Ou seja, não é apenas um tipo e pronto, como int e float.
Ela já vem com uns métodos e funcionalidades que facilitarão bastante a vida do programador Java.



O Java provém, automaticamente, para os caracteres, diversos métodos, como checagem pra saber se o caractere é Unicode, se é letra, se é maiúscula ou minúscula, se é número etc, além de métodos de comparação entre caracteres. Vamos ver:

char caractere;
  • Character.isDefined( caractere ) -> checa se 'caractere' está definido no Unicode; retorna true ou false
  • Character.isDigit( caractere ) -> 'true' se 'caractere' é um dígito, 'false' caso contrário
  • Character.isLetter( caractere ) -> 'true' se 'caractere' for letra, 'false' o contrário
  • Character.isLowerCase( caractere ) -> 'true' se 'caractere' for minúsculo, 'false' o contrário
  • Character.isUpperCase( caractere ) -> 'true' se 'caractere' for maiúsculo, 'false' o contrário
  • Character.toUpperCase( caractere ) -> transforma o 'caractere' em maiúsculo
  • Character.toLowerCase( caractere ) -> transforma o 'caractere' em minúsculo
  • Character.isLetterOrDigit( caractere ) -> 'true' se 'caractere' for letra ou dígito, 'false' o contrário
  • Character.isJavaIdentifierStart( caractere ) -> esse método é interessante. Ele identifica se o 'caractere' pode ser o primeiro caractere de um identificador em Java, ou seja, se pode ser letra, underlina _ ou o sinal de dinheiro $.
  • Character.isJavaIdentifierPart( caractere ) -> já esse checa se o 'caractere' pode ser parte de um identificador, ou seja, se é letra, número, underline _ ou dindin $ ; ambos retornam 'true' ou 'false'

Para usarmos os métodos comparativos, vamos declarar os caracteres como objetos 'Character' ao invés do tipo 'char' para explicar melhor alguns métodos da CLasse, pois já mostramos os da wrapper:

Character a = 'a';
Character b = 'b';
  • a.charValue() -> retorna o valor do objeto em formta de caractere
  • a.toString() -> retorna o objeto, mas na forma de String
  • a.equals(b) -> compara se o objeto 'a' possui o mesmo conteúdo do objeto 'b', onde o caso sensitivo importa. Ou seja, 'p' é diferente de 'P'


Embora muitas pessoas ainda confundam, mesmo tendo ciência de métodos que envolvam números, caracteres também incluem dígitos!
Portanto, os métodos em Java também provém meios para a conversão entre bases decimais, também conhecidas como 'radix'.
Ambos métodos a seguir são usados principalmente no tratamento de números hexadecimais, ou seja, para radix=16.
  • Character.forDigit( numero, base ) -> converte o 'numero' para o character correspondente, na base 'base' 
  • Character.digit( caractere, base ) -> converte o 'caractere' para número, na base 'base'