Você está na página 1de 10

Introduo Programao

Um enfoque orientado a construo de modelos em programas baseados em objetos

Departamento de Informtica - UFPB

Gustavo Motta

8. Manipulao de Strings

A classe String
Usada para representao e manipulao seqncias de caracteres
Inclui

mtodos teis para teis para processamento de textos

Tamanho do string, i. e., a quantidade de caracteres armazenados Caractere existente numa dada posio do string

Java.lenght() 4 Java.charAt(0) J Java.charAt(2) v Java.charAt(4)


java.lang.StringIndexOutOfBoundException

Java.toCharArray() {J,a,v,a}

Construo

de instncias da classe String

String curso = Cincia da Computao; String curso = new String(Cincia da Computao);

char[] caracteres = {C,i,,n,c,i,a, , d,a, ,C,o,m,p,u,t,a,,,o} ;


(C) 2008 Gustavo Motta String curso = new String(caracteres); 2

8. Manipulao de Strings

A classe String
Exemplo Jogo da Forca
1.

Inicializa-se um string com palavra a ser adivinhada e cria-se um

array de booleanos, cada posio correspondendo a um caractere da

palavra, inicializada com false, para indicar que nenhum caractere foi
adivinhado. Inicializa-se um array de 26 posies booleanas para indicar as letras que j foram utilizadas
2.

Mostra-se para o usurio quais letras j foram adivinhadas e quais Pede-se para o usurio entrar com uma letra, que includa no rol

letras j foram utilizadas


3.

das letras usadas e marca-se a letra nas posies correspondentes da palavra a ser adivinhada, se pertinente
Caso

todas as letras da palavra tenha sido adivinhada, ento o jogo


(C) 2008 Gustavo Motta 3

encerrado, caso contrrio, volta-se para o passo 2

8. Manipulao de Strings

A classe String
Mtodos para comparao de string
Strings

no devem ser comparados com == por que?

String curso = Computao; Computao.equals(curso) true

computao.equals(curso) false
curso.equals(Computao) true curso.equals(Comuptao) false curso.equals(curso) true

Computao.equalsIgnoreCase(curso) true
cOmPutaO.equalsIgnoreCase(curso) true curso.equalsIgnoreCase(cOmPutaO) true curso.equalsIgnoreCase(cOmPuta) false
(C) 2008 Gustavo Motta 4

curso.equalsIgnoreCase(curso) true

8. Manipulao de Strings

A classe String
Mtodos para comparao de strings
Considerando

apenas o incio ou o fim do string

String curso = Computao; curso.startsWith(Comp) true

curso.startsWith(comp) false
curso.startsWith(Computao) true curso.startsWith(Computaoo) false curso.startsWith() true

curso.endsWith(ao) true
curso.endsWith(Ao) false curso.endsWith(Computao) true curso.endsWith(Computaoo) false
(C) 2008 Gustavo Motta 5

curso.endsWith() true

8. Manipulao de Strings

A classe String
Mtodos para procura de substrings
Verificar

se um string contm outro string

String curso = Computao;

curso.indexOf(ao) 6
curso.indexOf(o) 1 curso.indexOf(uta) 4

curso.indexOf(cao) -1
curso.indexOf() 0 curso.indexOf(Comp) 0
(C) 2008 Gustavo Motta 6

8. Manipulao de Strings

A classe String
Mtodos para transformao de strings
String

em Java so imutveis

A modificao de um string , de fato, a criao de um novo string, numa

verso transformado do string anterior

String curso = Computao ;

Os mtodos de de string podem ser combinados curso = processamento Cincia da de .concat(curso);

curso.toLowerCase() cincia da computao

curso.toUpperCase().trim().substring( 12) OMPUTAO curso.toUpperCase() CINCIA DA COMPUTAO


curso.trim() Cincia da Computao curso.replace( , -) -Cincia-da-Computao- curso.substring(12) Computao

curso.substring(12, 16) Comp


curso.substring(16, 12)
java.lang.StringIndexOutOfBoundsException 7

curso.substring(16, curso.length()) java.lang.StringIndexOutOfBoundsException (C) 2008 Gustavo Motta

8. Manipulao de Strings

A classe String
Mtodos para converso de tipos com strings
Converte

valores de tipos nativos para strings e vice-versa


String.valueOf(10) 10
String.valueOf(15.4) 15.4 String.valueOf(v) v

Tipos nativos para String

char[]

carac = {'J', 'a', 'v', 'a'}; String.valueOf(carac) Java;


String para tipos Nativos

Interger.parseInt(10) 10 Float.parseFloat(3.2383) 3.2383

Integer.parseInt(10.33)
java.lang.NumberFormatException Float.parseFloat( 3.2a383 ) (C) 2008 Gustavo Motta

java.lang.NumberFormatException

8. Manipulao de Strings

A classe StringBuffer
Permite criao e manipulao de strings modificveis
Lembre

que instncia da classe String so imutveis

A criao de instncias de StringBuffer mais custosa que a


criao de instncias da classe String, porm a manipulao bem mais eficiente Instncias da classe StringBuffer tm duas variveis de instncia do tipo inteiro associadas
Uma

para indicar o comprimento do string, isto , a quantidade de para indicar a capacidade, que corresponde ao nmero mximo

caracteres armazenados num dados momento


Outra

de caracteres que podem ser armazenados pela instncia num dado momento
(C) 2008 Gustavo Motta 9

A capacidade pode ser expandida automtica ou manualmente

8. Manipulao de Strings

A classe StringBuffer
StringBuffer str = new StringBuffer(50); StringBuffer str = new StringBuffer(Java); str.append( ); str.append(Language ); str.append(10); System.out.println(str); Java Language 10 str.insert(14, ); System.out.println(str); Java Language 10 str.delete(5, 13); System.out.println(str); Java 10 str.reverse(); System.out.println(str); 01 avaJ
(C) 2008 Gustavo Motta 10