Introdução à Programação
Introdução à Programação
Introdução à Programação
Introdução à Programação
Um enfoque orientado a construção de
Um enfoque orientado a construção de
Um enfoque orientado a construção de
Um enfoque orientado a construção de
modelos em programas baseados em objetos
modelos em programas baseados em objetos
modelos em programas baseados em objetos
modelos em programas baseados em objetos
Gustavo Motta
Gustavo Motta
Gustavo Motta
Gustavo Motta
Departamento de Informática - UFPB
Departamento de Informática - UFPB
Departamento de Informática - UFPB
( (CC))22000088GGuussttaavvooMMoottttaa 22
8. Manipulação de Strings
8. Manipulação de Strings
8. Manipulação de Strings
8. Manipulação de Strings
►
►
A classe
A classe
A classe
A classe
String
String
String
String
Usada para representação e manipulação seqüências de
Usada para representação e manipulação seqüências de
Usada para representação e manipulação seqüências de
Usada para representação e manipulação seqüências de
caracteres
caracteres
caracteres
caracteres
►
►
Inclui métodos úteis para úteis para processamento de textos
Inclui métodos úteis para úteis para processamento de textos
Inclui métodos úteis para úteis para processamento de textos
Inclui métodos úteis para úteis para processamento de textos
Tamanho do string, i. e., a quantidade de caracteres armazenados
Tamanho do string, i. e., a quantidade de caracteres armazenados
Tamanho do string, i. e., a quantidade de caracteres armazenados
Tamanho do string, i. e., a quantidade de caracteres armazenados
Caractere existente numa dada posição do string
Caractere existente numa dada posição do string
Caractere existente numa dada posição do string
Caractere existente numa dada posição do string
►
► ““““Java”.lenght()Java”.lenght()Java”.lenght()Java”.lenght() 4444
►
► ““““Java”.charAt(0)Java”.charAt(0)Java”.charAt(0)Java”.charAt(0) ‘J’‘J’‘J’‘J’
►
► ““““Java”.charAt(2)Java”.charAt(2)Java”.charAt(2)Java”.charAt(2) ‘v’‘v’‘v’‘v’
►
► ““““Java”.charAt(4)Java”.charAt(4)Java”.charAt(4)Java”.charAt(4) java.lang.StringIndexOutOfBoundExceptionjava.lang.StringIndexOutOfBoundExceptionjava.lang.StringIndexOutOfBoundExceptionjava.lang.StringIndexOutOfBoundException
►
► ““““Java“.toCharArray()Java“.toCharArray()Java“.toCharArray()Java“.toCharArray() {‘J’,‘a’,’v’,’a’}{‘J’,‘a’,’v’,’a’}{‘J’,‘a’,’v’,’a’}{‘J’,‘a’,’v’,’a’}
►
►
Construção de instâncias da classe
Construção de instâncias da classe
Construção de instâncias da classe
Construção de instâncias da classe
String
String
String
String
String curso = “Ciência da Computação”;String curso = “Ciência da Computação”;String curso = “Ciência da Computação”;String curso = “Ciência da Computação”;
String curso =String curso =String curso =String curso =
new
new
new
new
String(“Ciência da Computação”);String(“Ciência da Computação”);String(“Ciência da Computação”);String(“Ciência da Computação”);
char[] caracteres = {‘C’,‘i’,’ê’,’n’,’c’,’i’,’a’,’ ’,char[] caracteres = {‘C’,‘i’,’ê’,’n’,’c’,’i’,’a’,’ ’,char[] caracteres = {‘C’,‘i’,’ê’,’n’,’c’,’i’,’a’,’ ’,char[] caracteres = {‘C’,‘i’,’ê’,’n’,’c’,’i’,’a’,’ ’, ’d’,’a’,’ ’,’C’,’o’,’m’,’p’,’u’,’t’,’a’,’ç’,’ã’,’o’};
’d’,’a’,’ ’,’C’,’o’,’m’,’p’,’u’,’t’,’a’,’ç’,’ã’,’o’}; ’d’,’a’,’ ’,’C’,’o’,’m’,’p’,’u’,’t’,’a’,’ç’,’ã’,’o’}; ’d’,’a’,’ ’,’C’,’o’,’m’,’p’,’u’,’t’,’a’,’ç’,’ã’,’o’};
(
(CC))22000088GGuussttaavvooMMoottttaa 33
8. Manipulação de Strings
8. Manipulação de Strings
►
►
A classe
A classe
String
String
Exemplo – Jogo da Forca
Exemplo – Jogo da Forca
►
►
1. Inicializa-se um string com palavra a ser adivinhada e cria-se
1. Inicializa-se um string com palavra a ser adivinhada e cria-se
um array de booleanos, cada posição correspondendo a um
um array de booleanos, cada posição correspondendo a um
caractere da palavra, inicializada com
caractere da palavra, inicializada com
false
false
, para indicar que
, para indicar que
nenhum caractere foi adivinhado. Inicializa-se um array de 26
nenhum caractere foi adivinhado. Inicializa-se um array de 26
posições booleanas para indicar as letras que já foram
posições booleanas para indicar as letras que já foram
utilizadas
utilizadas
►
►
2. Mostra-se para o usuário quais letras já foram adivinhadas e
2. Mostra-se para o usuário quais letras já foram adivinhadas e
quais letras já foram utilizadas
quais letras já foram utilizadas
►
►
3. Pede-se para o usuário entrar com uma letra, que é incluída
3. Pede-se para o usuário entrar com uma letra, que é incluída
no rol das letras usadas e marca-se a letra nas posições
no rol das letras usadas e marca-se a letra nas posições
correspondentes da palavra a ser adivinhada, se pertinente
correspondentes da palavra a ser adivinhada, se pertinente
Caso todas as letras da palavra tenha sido adivinhada, então o
Caso todas as letras da palavra tenha sido adivinhada, então o
( (CC))22000088GGuussttaavvooMMoottttaa 44
8. Manipulação de Strings
8. Manipulação de Strings
8. Manipulação de Strings
8. Manipulação de Strings
►
►
A classe
A classe
A classe
A classe
String
String
String
String
Métodos para comparação de string
Métodos para comparação de string
Métodos para comparação de string
Métodos para comparação de string
►
►
Strings não devem ser comparados com ==
Strings não devem ser comparados com ==
Strings não devem ser comparados com ==
Strings não devem ser comparados com ==
–
–
–
– por
por
por
por que?
que?
que?
que?
String curso = “Computação”;String curso = “Computação”;String curso = “Computação”;String curso = “Computação”;
““““Computação”.equals(curso)Computação”.equals(curso)Computação”.equals(curso)Computação”.equals(curso)
true
true
true
true
““““computação”.equals(curso)computação”.equals(curso)computação”.equals(curso)computação”.equals(curso)
false
false
false
false
curso.equals(“Computação”)curso.equals(“Computação”)curso.equals(“Computação”)curso.equals(“Computação”)
true
true
true
true
curso.equals(“Comuptação”)curso.equals(“Comuptação”)curso.equals(“Comuptação”)curso.equals(“Comuptação”)
false
false
false
false
curso.equals(curso)curso.equals(curso)curso.equals(curso)curso.equals(curso)
true
true
true
true
““““Computação”.equalsIgnoreCase(curso)Computação”.equalsIgnoreCase(curso)Computação”.equalsIgnoreCase(curso)Computação”.equalsIgnoreCase(curso)
true
true
true
true
““““cOmPutaÇãO”.equalsIgnoreCase(curso)cOmPutaÇãO”.equalsIgnoreCase(curso)cOmPutaÇãO”.equalsIgnoreCase(curso)cOmPutaÇãO”.equalsIgnoreCase(curso)
true
true
true
true
curso.equalsIgnoreCase(“cOmPutaÇãO”)curso.equalsIgnoreCase(“cOmPutaÇãO”)curso.equalsIgnoreCase(“cOmPutaÇãO”)curso.equalsIgnoreCase(“cOmPutaÇãO”)
true
true
true
true
curso.equalsIgnoreCase(“cOmPutaÇã”)curso.equalsIgnoreCase(“cOmPutaÇã”)curso.equalsIgnoreCase(“cOmPutaÇã”)curso.equalsIgnoreCase(“cOmPutaÇã”)
false
false
false
false
( (CC))22000088GGuussttaavvooMMoottttaa 55
8. Manipulação de Strings
8. Manipulação de Strings
8. Manipulação de Strings
8. Manipulação de Strings
►
►
A classe
A classe
A classe
A classe
String
String
String
String
Métodos para comparação de strings
Métodos para comparação de strings
Métodos para comparação de strings
Métodos para comparação de strings
►
►
Considerando apenas o início ou o fim do
Considerando apenas o início ou o fim do
Considerando apenas o início ou o fim do
Considerando apenas o início ou o fim do string
string
string
string
String curso = “Computação”;String curso = “Computação”;String curso = “Computação”;String curso = “Computação”;
curso.startsWith(“Comp”)curso.startsWith(“Comp”)curso.startsWith(“Comp”)curso.startsWith(“Comp”)
true
true
true
true
curso.startsWith(“comp”)curso.startsWith(“comp”)curso.startsWith(“comp”)curso.startsWith(“comp”)
false
false
false
false
curso.startsWith(“Computação”)curso.startsWith(“Computação”)curso.startsWith(“Computação”)curso.startsWith(“Computação”)
true
true
true
true
curso.startsWith(“Computaçãoo”)curso.startsWith(“Computaçãoo”)curso.startsWith(“Computaçãoo”)curso.startsWith(“Computaçãoo”)
false
false
false
false
curso.startsWith(“”)curso.startsWith(“”)curso.startsWith(“”)curso.startsWith(“”)
true
true
true
true
curso.endsWith(“ação”)curso.endsWith(“ação”)curso.endsWith(“ação”)curso.endsWith(“ação”)
true
true
true
true
curso.endsWith(“Ação”)curso.endsWith(“Ação”)curso.endsWith(“Ação”)curso.endsWith(“Ação”)
false
false
false
false
curso.endsWith(“Computação”)curso.endsWith(“Computação”)curso.endsWith(“Computação”)curso.endsWith(“Computação”)
true
true
true
true
curso.endsWith(“Computaçãoo”)curso.endsWith(“Computaçãoo”)curso.endsWith(“Computaçãoo”)curso.endsWith(“Computaçãoo”)
false
false
false
false
( (CC))22000088GGuussttaavvooMMoottttaa 66
8. Manipulação de Strings
8. Manipulação de Strings
8. Manipulação de Strings
8. Manipulação de Strings
►
►
A classe
A classe
A classe
A classe
String
String
String
String
Métodos para procura de substrings
Métodos para procura de substrings
Métodos para procura de substrings
Métodos para procura de substrings
►
►
Verificar se um string contém outro string
Verificar se um string contém outro string
Verificar se um string contém outro string
Verificar se um string contém outro string
String curso = “Computação”;String curso = “Computação”;String curso = “Computação”;String curso = “Computação”;
curso.indexOf(“ação”)curso.indexOf(“ação”)curso.indexOf(“ação”)curso.indexOf(“ação”)
6
6
6
6
curso.indexOf(“o”)curso.indexOf(“o”)curso.indexOf(“o”)curso.indexOf(“o”)
1
1
1
1
curso.indexOf(“uta”)curso.indexOf(“uta”)curso.indexOf(“uta”)curso.indexOf(“uta”)
4
4
4
4
curso.indexOf(“cação”)curso.indexOf(“cação”)curso.indexOf(“cação”)curso.indexOf(“cação”)
-1
-1
-1
-1
curso.indexOf(“”)curso.indexOf(“”)curso.indexOf(“”)curso.indexOf(“”)
0
0
0
0
( (CC))22000088GGuussttaavvooMMoottttaa 77
8. Manipulação de Strings
8. Manipulação de Strings
8. Manipulação de Strings
8. Manipulação de Strings
►
►
A classe
A classe
A classe
A classe
String
String
String
String
Métodos para transformação de strings
Métodos para transformação de strings
Métodos para transformação de strings
Métodos para transformação de strings
►
►
String em Java são imutáveis
String em Java são imutáveis
String em Java são imutáveis
String em Java são imutáveis
A “modificação” de um string é, de fato, a criação de um novo
A “modificação” de um string é, de fato, a criação de um novo
A “modificação” de um string é, de fato, a criação de um novo
A “modificação” de um string é, de fato, a criação de um novo
string, numa versão transformado do string anterior
string, numa versão transformado do string anterior
string, numa versão transformado do string anterior
string, numa versão transformado do string anterior
►
► String curso = “Computação ”;String curso = “Computação ”;String curso = “Computação ”;String curso = “Computação ”;
►
► curso = “ Ciência da ”.concat(curso);curso = “ Ciência da ”.concat(curso);curso = “ Ciência da ”.concat(curso);curso = “ Ciência da ”.concat(curso);
►
► curso.toLowerCase()curso.toLowerCase()curso.toLowerCase()curso.toLowerCase()
“ ciência da computação ”
“ ciência da computação ”
“ ciência da computação ”
“ ciência da computação ”
►
► curso.toUpperCase()curso.toUpperCase()curso.toUpperCase()curso.toUpperCase()
“ CIÊNCIA DA COMPUTAÇÃO ”
“ CIÊNCIA DA COMPUTAÇÃO ”
“ CIÊNCIA DA COMPUTAÇÃO ”
“ CIÊNCIA DA COMPUTAÇÃO ”
►
► curso.trim()curso.trim()curso.trim()curso.trim()
“Ciência da Computação”
“Ciência da Computação”
“Ciência da Computação”
“Ciência da Computação”
►
► curso.replace(‘ ’, ‘-’)curso.replace(‘ ’, ‘-’)curso.replace(‘ ’, ‘-’)curso.replace(‘ ’, ‘-’)
“-Ciência-da-Computação-”
“-Ciência-da-Computação-”
“-Ciência-da-Computação-”
“-Ciência-da-Computação-”
►
► curso.substring(curso.substring(curso.substring(curso.substring(
12
12
12
12
)))) “Computação ”
“Computação ”
“Computação ”
“Computação ”
►
► curso.substring(curso.substring(curso.substring(curso.substring(
12, 16
12, 16
12, 16
12, 16
)))) “Comp”
“Comp”
“Comp”
“Comp”
►
► curso.substring(curso.substring(curso.substring(curso.substring(
16, 12
16, 12
16, 12
16, 12
)))) java.lang.Strijava.lang.Strijava.lang.Strjava.lang.StringIndexOutOfBingIndexOutOfBoundsExceptionngIndexOutOfBongIndexOutOfBooundsExceptionundsExceptionundsException ►► curso.substring(curso.substring(curso.substring(curso.substring(16,16,16,16, curso.length())curso.length())curso.length())curso.length()) java.lang.StringIndexOutOfBoundsExceptionjava.lang.StringIndexOutOfBoundsExceptionjava.lang.StringIndexOutOfBoundsExceptionjava.lang.StringIndexOutOfBoundsException
Os métodos de de processamento de string podem ser
Os métodos de de processamento de string podem ser combinados
combinados
Os métodos de de processamento de string podem ser
Os métodos de de processamento de string podem ser
combinados
combinados
curso.toUpperCase().trim().substring(
curso.toUpperCase().trim().substring(
curso.toUpperCase().trim().substring(
( (CC))22000088GGuussttaavvooMMoottttaa 88
8. Manipulação de Strings
8. Manipulação de Strings
8. Manipulação de Strings
8. Manipulação de Strings
►
►
A classe
A classe
A classe
A classe
String
String
String
String
Métodos para conversão de tipos com
Métodos para conversão de tipos com
Métodos para conversão de tipos com strings
Métodos para conversão de tipos com strings
strings
strings
►
►
Converte valores de tipos nativos para stri
Converte valores de tipos nativos para stri
Converte valores de tipos nativos para stri
Converte valores de tipos nativos para strings e vice-versa
ngs e vice-versa
ngs e vice-versa
ngs e vice-versa
Tipos nativos para String
Tipos nativos para String
Tipos nativos para String
Tipos nativos para String
►
► String.valueOf(10)String.valueOf(10)String.valueOf(10)String.valueOf(10) “10”“10”“10”“10”
►
► String.valueOf(15.4)String.valueOf(15.4)String.valueOf(15.4)String.valueOf(15.4) “15.4”“15.4”“15.4”“15.4”
►
► String.valueOf(‘v’)String.valueOf(‘v’)String.valueOf(‘v’)String.valueOf(‘v’) “v”“v”“v”“v”
►
►
char
char
char
char
[] carac = {'J', 'a', 'v', 'a'};
[] carac = {'J', 'a', 'v', 'a'};
[] carac = {'J', 'a', 'v', 'a'};
[] carac = {'J', 'a', 'v', 'a'};
String.valueOf(carac)
String.valueOf(carac)
String.valueOf(carac)
String.valueOf(carac)
“Java”;
“Java”;
“Java”;
“Java”;
String para tipos Nativos
String para tipos Nativos
String para tipos Nativos
String para tipos Nativos
►
► Interger.parseInt(“10”)Interger.parseInt(“10”)Interger.parseInt(“10”)Interger.parseInt(“10”) 10101010
►
► Float.parseFloat(“3.2383”)Float.parseFloat(“3.2383”)Float.parseFloat(“3.2383”)Float.parseFloat(“3.2383”) 3.23833.23833.23833.2383
►
► Integer.parseInt(“10.33”)Integer.parseInt(“10.33”)Integer.parseInt(“10.33”)Integer.parseInt(“10.33”)
java.lang.NumberFormatException java.lang.NumberFormatException java.lang.NumberFormatException java.lang.NumberFormatException
►
( (CC))22000088GGuussttaavvooMMoottttaa 99
8. Manipulação de Strings
8. Manipulação de Strings
8. Manipulação de Strings
8. Manipulação de Strings
►
►
A classe
A classe
A classe
A classe
StringBuffer
StringBuffer
StringBuffer
StringBuffer
Permite criação e manipulação de strings modificáveis
Permite criação e manipulação de strings modificáveis
Permite criação e manipulação de strings modificáveis
Permite criação e manipulação de strings modificáveis
►
►
Lembre que instância da classe
Lembre que instância da classe
Lembre que instância da classe
Lembre que instância da classe
String
String
String
String
são imutáveis
são imutáveis
são imutáveis
são imutáveis
A criação de instâncias de
A criação de instâncias de
A criação de instâncias de
A criação de instâncias de
StringBuffer
StringBuffer
StringBuffer
StringBuffer
é mais custosa
é mais custosa
é mais custosa
é mais custosa
que a criação de instâncias da classe
que a criação de instâncias da classe
que a criação de instâncias da classe
que a criação de instâncias da classe
String
String
String
String
, porém a
, porém a
, porém a
, porém a
manipulação é bem mais eficiente
manipulação é bem mais eficiente
manipulação é bem mais eficiente
manipulação é bem mais eficiente
Instâncias da classe
Instâncias da classe
Instâncias da classe
Instâncias da classe
StringBuffer
StringBuffer
StringBuffer
StringBuffer
têm duas variáveis de
têm duas variáveis de
têm duas variáveis de
têm duas variáveis de
instância do tipo inteiro associadas
instância do tipo inteiro associadas
instância do tipo inteiro associadas
instância do tipo inteiro associadas
►
►
Uma para indicar o
Uma para indicar o
Uma para indicar o
Uma para indicar o
comprimento
comprimento
comprimento
comprimento
do string, isto é, a quantidade
do string, isto é, a quantidade
do string, isto é, a quantidade
do string, isto é, a quantidade
de caracteres armazenados num dados momento
de caracteres armazenados num dados momento
de caracteres armazenados num dados momento
de caracteres armazenados num dados momento
►
►
Outra para indicar a capacidade, que corresponde ao número
Outra para indicar a capacidade, que corresponde ao número
Outra para indicar a capacidade, que corresponde ao número
Outra para indicar a capacidade, que corresponde ao número
máximo de caracteres que podem ser
máximo de caracteres que podem ser armazenados pela
armazenados pela
máximo de caracteres que podem ser
máximo de caracteres que podem ser
armazenados pela
armazenados pela
instância num dado momento
instância num dado momento
instância num dado momento
instância num dado momento
( (CC))22000088GGuussttaavvooMMoottttaa 1100