Métodos da Classe Character: String em Java - Parte 3

Veja neste artigo a continuação sobre o que são string em Java. A classe Character possui vários métodos que auxiliam no processamento de caracteres de uma string em aplicações Java.

String (ou cadeia de caracteres)
Na primeira parte do artigo sobre String em Java foram apresentadas as características básicas dos objetos String: declaração e instanciação, tabela ASCII e como processar um caractere de uma string. Já na segunda parte foram abordados os métodos da classe String. Agora nesta terceira e última parte sobre o assunto serão estudados os métodos da classe Character.

A aplicação Java apresentada na Listagem 1 mostra como processar os caracteres de uma string usando a relação ordinal existente entre os caracteres. Por exemplo, do caractere 'A' até o caractere 'Z' na tabela ASCII se encontram todos os caracteres alfabéticos maiúsculos em ordem.
import java.util.Scanner; public class String9 { public static void main(String[] args) { Scanner ler = new Scanner(System.in); String s; char c; int i, n, ctalfa = 0, ctnum = 0; System.out.printf("Informe uma String:\n"); s = ler.nextLine(); System.out.println(); n = s.length(); // tamanho da string (qtde de caracteres) for (i=0; i<n; i++) { c = s.charAt(i); // i-ésimo caractere da string 's' // verificando se é um caractere alfabético if (((c >= 'A') && (c <= 'Z')) || ((c >= 'a') && (c <= 'z'))) { ctalfa = ctalfa + 1; System.out.printf("%c ---> %da. letra\n", c, ctalfa); } // verificando se é um caractere numérico else if ((c >= '0') && (c <= '9')) { ctnum = ctnum + 1; System.out.printf("%c ---> %do. número\n", c, ctnum); } else System.out.printf("%c\n", c); } } }
Listagem 1- Contando os caracteres alfabéticos e numéricos de uma string.

A classe Character em Java possui vários métodos que simplificam a programação demonstrada na Listagem 1, entre eles destancam-se:
static int   digit(char ch, int radix)
    Retorna o valor numérico correspondente ao caractere "ch" no sistema numérico indicado por "radix".
static char   forDigit(int digit, int radix)
    Retorna o valor numérico correspondente ao caractere "ch" no sistema numérico indicado por "radix".
static boolean   isDigit(char ch)
    Retorna verdadeiro se o caractere "ch" é um caractere numérico e falso caso contrário.
static boolean   isLetter(char ch)
    Retorna verdadeiro se o caractere "ch" é um caractere alfabético e falso caso contrário.
static boolean   isLetterOrDigit(char ch)
    Retorna verdadeiro se o caractere "ch" é um caractere alfabético ou é um caractere numérico e falso caso contrário.
static boolean   isSpaceChar(char ch)
    Retorna verdadeiro se o caractere "ch" é um espaço em branco e falso caso contrário.
static boolean   isLowerCase(char ch)
    Retorna verdadeiro se o caractere "ch" é um caractere alfabético minúsculo e falso caso contrário.
static boolean   isUpperCase(char ch)
    Retorna verdadeiro se o caractere "ch" é um caractere alfabético maiúsculo e falso caso contrário.
static boolean   toLowerCase(char ch)
    Retorna o caractere "ch" convertido, se houver, no correspondente caractere minúsculo.
static boolean   toUpperCase(char ch)
    Retorna o caractere "ch" convertido, se houver, no correspondente caractere maiúsculo.
Veja a documentação completa da classe Character em:
http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Character.html

A aplicação Java apresentada na Listagem 2 mostra como contar os caracteres alfabéticos e numéricos de uma string verificando o tipo do caractere através dos métodos da classe Character: isLetter() e isDigit(), respectivamente.
import java.util.Scanner; public class String10 { public static void main(String[] args) { Scanner ler = new Scanner(System.in); String s; char c; int i, n, ctalfa = 0, ctnum = 0; System.out.printf("Informe uma String:\n"); s = ler.nextLine(); System.out.println(); n = s.length(); // tamanho da string (qtde de caracteres) for (i=0; i<n; i++) { c = s.charAt(i); // i-ésimo caractere da string 's' // verificando se é um caractere alfabético if (Character.isLetter(c)) { ctalfa = ctalfa + 1; System.out.printf("%c ---> %da. letra\n", c, ctalfa); } // verificando se é um caractere numérico else if (Character.isDigit(c)) { ctnum = ctnum + 1; System.out.printf("%c ---> %do. número\n", c, ctnum); } else System.out.printf("%c\n", c); } } }
Listagem 2- Contando os caracteres alfabéticos e numéricos de uma string.

A aplicação Java apresentada na Listagem 3 exemplifica a utilização dos métodos da classe Character: isDigit(), isLowerCase(), isUpperCase() e isSpaceChar(), na verificação do tipo do caractere.
import java.util.Scanner; public class String11 { public static void main(String[] args) { Scanner ler = new Scanner(System.in); String s; char c; int i, n; System.out.printf("Informe uma String:\n"); s = ler.nextLine(); System.out.println(); n = s.length(); // tamanho da String for (i=0; i<n; i++) { c = s.charAt(i); if (Character.isDigit(c)) System.out.printf("%c <--- número\n", c); else if (Character.isLowerCase(c)) System.out.printf("%c <--- letra minúscula\n", c); else if (Character.isUpperCase(c)) System.out.printf("%c <--- letra maiúscula\n", c); else if (Character.isSpaceChar(c)) System.out.printf("%c <--- space blank\n", c); else System.out.printf("%c\n", c); } } }
Listagem 3- Exibindo os caracteres de uma string.

A aplicação Java apresentada na Listagem 4 exemplifica a utilização dos métodos isDigit() e digit() na conversão de um caractere numérico no seu respectivo valor inteiro.
import java.util.Scanner; public class String12 { public static void main(String[] args) { Scanner ler = new Scanner(System.in); String[] unidade = {"zero", "um", "dois", "três", "quatro", "cinco", "seis", "sete", "oito", "nove"}; String s; char c; int i, num, n; System.out.printf("Informe uma String:\n"); s = ler.nextLine(); System.out.println(); n = s.length(); // tamanho da String for (i=0; i<n; i++) { c = s.charAt(i); if (Character.isDigit(c)) { // converte o caractere numérico no correspondente número // usando como base o sistema numérico decimal num = Character.digit(c, 10); System.out.printf("%c <--- %s\n", c, unidade[num]); } else System.out.printf("%c\n", c); } } }
Listagem 4- Convertendo caracteres numéricos em valores inteiros.

Ilustrando a execução das aplicações:
Listagem 1: Listagem 2:


Listagem 3: Listagem 4:


Referência:
Peter Jandl Junior. Introdução ao Java. São Paulo: Berkeley - 2002.

Com este terceiro artigo concluímos nossa abordagem sobre string em Java.

Obrigado e um abraço.

Prof. Omero Francisco Bertol (http://www.pb.utfpr.edu.br/omero/)
Aplicações Java (http://www.pb.utfpr.edu.br/omero/Java/Fontes.HTM)
Exercícios com String (http://www.pb.utfpr.edu.br/omero/Java/Fontes/Lista%20String/Lista%20String.HTM)
Download dos Exemplos (http://www.pb.utfpr.edu.br/omero/Java/Artigos/String.rar)


Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados