Você está na página 1de 5

Figura 8.1, Passagem e tratamento de tres parametres (opc ao l. opcao2 eopcao3).

Manipulando texto e cadeias de caracteres



A manipulacao de texto e cadeias de caracteres e uma das funcionalidades essenciais e mais utilizadas em programacao, Para implementa-la no Java, utilizam-se basicamente tres classes: java. lang. String, Java. lang. StringBuffer e java.util. String Tokenizer.

• Classe java. lang. String

A classe java. lang. String disponibiliza varias funcionalidades para a manipulacao de textos, dentre as quais: cornparacao, contagem, pesquisa, eliminacao e insercao de caracteres, conversao de caixa (maiUsculas/minusculas) e tratamento de conjuntos de caracteres. Os principais metodos fornecidos pela classe java. lang. String para a utilizacao de tais funcionalidades sao:

public boolean equals(Object) - veri fica se 0 conteiido da String equivale ao de determinado objeto;

ftublic int length 0 - retorna 0 tamanho da String;

public int indexOf(char c) - retorna a posicao em que determinado caractere se encontra;

public char charAt(int index) - retorna 0 caractere que ocupa determinada posicao;

public String(] split(String cadeia) - retorna urn array de String proveniente da divisao da String;

Entendendo e Dominando 0 Java - 3a edic;ao

public String trimO - retorna uma nova String, na qual sao rernovidos os espacos em hranco do inicio e do fim da cadeia;

public String toLowerCaseO - converte os caracteres da String para mimisculas;

public String toUpperCaseO - converte os caracteres da String para maitisculas;

public String substring(int inicio, int fim) - retorna uma nova String contendo as caractcres do intervale determinado (no caso, fim-inicio);

public String replace (char antigo,char novo) - retorna uma nova String, na qual detenninado caractere (em todas as vezes que aparecer) e trocado par urn novo.

A classejava.lang.String disponibiliza muitos outros metodos alem dos que acabamos de descrever, Para saber mais sobre e1es, sugerimos 0 estudo do topico cortespondente na documentacao da Java API. 0 codigo TesteString, que voce encontra no DVD mostra urn exemplo de uso dos metodos apresentados:

public class TesteString {

I

public static void main(String args[J) (

String texto = "Entendendo e Dominando 0 Java!"; int tamanho = texto.length{); System.out.println("Texto: "+texto); System.out.println("Tamanho: "+tamanho);

String texto2 = texto.taUpperCase(); System.out.println("Texto2: "+texta2);

String' texto3 = texto. toLowerCase () ; System.out.println("Texto3; "+texto3);

String texto4 = texto3. replace ('a', '0');

texto4 = texto4. replace ('j', 'J') ; System.out.println("Texto4: "+texto4);

if (texta3.equals (texto)) (

System.out.println{" texto3 e texto s§o iguais! "); else (

System.out.println(" text03 e texto sao diferentes!

") ;

if (texta4.equals(texto))(

System.out.println(" texto4 e texto sao iguaisl "I; } else {

Manipulando excecoes em Java

System.out.println!" texto4 e texto sao diferentes!

");

Figura 8.2. Resultado da aplica<.;:ao de metodos para rnenlpulacao de texto.

• Classe jovo.util.StringTokenizer

A classe java. util. String'Iokenizer e usada para quebrar uma String em pedacos, usando como referencia urn separador, Os principals rnetodos oferecidos por essa classe sao:

public StringTokenizer(String frase, String separador) - constroi urn objeto Token i zer, quebrando a String nos pontos em que for encontrado 0 separador estipulado como parametro;

hasMoreTokensO - retorna urn booleano (true ou false) que indica se ha ou nao, na String, mais pedacos resultantes da quebra;

~

public String nextToken 0 - refurna u rna String con tendo urn pedaco separado e apontado como proximo e, depois, move para 0 ponteiro do Tokenizer 0 proximo pedaco ja separado.

Exemplo de usa:

java.util.StringTokenizer st Digerati

Books", " .... ');

while (st.hasl'1oreTokens ()) System.out.println(st.nextToken());

new java.util.StringTokenizer("

-:-·1'4"2") Entendendo e Dominando 0 Java - 3a edi ~ao

r

~. A saida de tcxto do C6digo mostrado e esta:

Digerati Books

1'.

tr Cia sse java.lang.StringBuffer

A classejava.lang.StringBufferc usada para trabalhar com buffers de Strings, bern t,omo realizar operacoes de pesquisa, substituicao, insercao e exclusao de Strings 'dentro de um texto, Seus principals rnetodos sao:

public StringBuffer append (String string) - insere a String no firn do buf.. fer;

public StringBuf'fer insert(int index, String string) - ius ere a Stri ng na posicao

inform ada pelo index; \.

public int indexOf(String string) - retorna a posicao em que se encontra a String;

public StringBuffer reversef) - inverte todo 0 conteudo do buffer;

public StringBuffer deleteflnt inicio, int fim) - exclui do buffer as Strings que se encontrein nas posicoes definidas no intervalo determinado (no caso, fim-inieio).

Veja, no codigo TesteStringBuffer.java, presente no DVD, urn exemplo de como utilizar os metodos dessa classe, juntamente com metodos da classe java.util. StringToke;zizer.

import java.util.StriDgTokenizer;

public class TesteStringBuffer {

public static void main(String args[]) (

String texto - "Entendendo e Dominando 0 Java! Digerati

Books!";

StringTokenizer tokenizer = new StriDgTokenizer( texto,

'-' ~ II ) ;

int Dumera = tokenizer.countTokens(); String[] tokens = new String[nu~ero]; int count = 0;

while (tokenizer.hasMoreTokens()) {

tokens [countl = tokenizer.nextToken{); count++;

Manipulando excecoes em Java EJ~

System.out.println("Texto: "+texto); System.out.println("' Tokens: "+numero); System.out.print("Tokens: "I;

for (int i ~ 0 ; i < tokens.length; i++) System. out-print (tokens [iJ +", ");

System.out.println();

StringBuffer buffer = new StringBuffer(texto); StringBuffer invert ida ~ buffer.reverse(); System.out.println("Texto: "+texto); System.out.println("Invertido: "+invertido);

Figura 8.3. Resultado de programa utilizando merodos das classes SrfingBuffer e SUingTok2rlizer

Exerdcios de String, StringBuffer e StringTokenizer

Baslco - Usando os rnetodos da classe String, escreva urn prograrna que leia urn texto como pararnetro em linha de cornando. Esse program a deve:

• imprimir 0 mimero de caracteres existentes no texto;

• imprimir 0 numero de palavras existentes no texto,

4

Intermedhirio'- Usando as metodos da classe Stringliuffer, escreva urn programa que leia urn texto como pararnetro em li nha de eomando. Esse programa deve:

• inverter toda a sequencia de caracteres do texto,

Avancado - Usando as metodos da classe Stringlokenizer, escreva um programa que separe, em urn array de Strings, 0 seguinte texto: "try, catch, finally, do, while, if, break, import, package".

Entrada e saida de dados

A entrada e a saida de dados (I/O) de urn aplicativo ou sistema podem ser feitas de varias forrnas, A entrada po de ocorrer via teclado, arquivo au interface grafica, e a safda pede ser definida para console de texto, arquivo au componente grafico. No 1

Entendendo e Dominando 0 Java - 3a edi~ao

-"

:

-j

Você também pode gostar