Buscar

JAVA Strings

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

11/7/16
1
P. Passão / F. S. BarbosaProgramação
Programação I
Strings
P. Passão / F. S. BarbosaProgramação
Strings
oUma String é um conjunto de 
caracteres
oAtenção que um caracter não é uma 
String
oPara diferenciar entre strings e 
caracteres usam-se as " " para strings 
e ' ' para caracteres
"Isto é uma string" // exemplo de string
'I' // exemplo de caracter
"A" // isto é uma string com um único caracter
'A' // isto é um caracter
11/7/16
2
P. Passão / F. S. BarbosaProgramação
Strings
oEm Java existe o tipo String para 
representar as strings
nAs strings são objectos.
nAs strings não são arrays de caracteres
String string = "Isto é uma string"; // exemplo de string
String nome = "Felizberto Desgraçado"; // outra string
char vogais[] = {'a', 'e', 'i', 'o', 'u' }; // array de caracteres
P. Passão / F. S. BarbosaProgramação
Strings
oComo as strings são objectos não obedecem 
às mesmas regras dos tipos de variáveis 
estudados até agora
n Obedecem às regras dos objectos
oVamos ver os objectos no final de P1 ou em P2
oComo quase todos os programas usam 
strings (mesmo os que fizemos até agora) é 
necessário saber como manipulá-las
n Toda a manipulação envolve o uso de métodos
oVeremos, em pormenor, os métodos mais tarde
11/7/16
3
P. Passão / F. S. BarbosaProgramação
Strings
oManipulações que iremos abordar
nSaber o tamanho de uma string
nConcatenação de strings
nComparações de strings
nManipulação de caracteres dentro de uma 
string
nPesquisas em strings
nSeparação de strings
P. Passão / F. S. BarbosaProgramação
Strings
oDeterminar o tamanho de uma String
nUsar o método length()
oRetorna o número de caracteres presentes 
na String
oÉ sempre um valor inteiro
String nome = "Felizberto Desgraçado"; 
System.out.println( "O nome " + nome + " tem " + nome.length() + " caracteres");
O nome Felizberto Desgraçado tem 21 caracteres
Não esquecer que o espaço é um caracter
11/7/16
4
P. Passão / F. S. BarbosaProgramação
Strings
oConcatenar Strings
nA concatenação de strings é a 
possibilidade de agrupar (somar) duas ou 
mais strings
oÉ a única manipulação que é suportada em 
Java sem o uso de métodos
String primeiroNome = "Felizberto";
String apelido = "Desgraçado";
String nomeCompleto = primeiroNome + " " + apelido;
System.out.println( "O nome completo é" + nomeCompleto);
Reparar que " " é uma string
O nome completo é Felizberto Desgraçado
P. Passão / F. S. BarbosaProgramação
Strings
oConcatenar Strings
nReparar que até agora temos usado 
extensivamente a concatenação de 
strings
nSempre que nos printlns usávamos o + 
estávamos a usar a concatenação de 
strings
oO Java transforma automaticamente todos 
os tipos de dados prédefinidos para String
int num = 10;
float f = 2.0f;
System.out.println( "num = " + num + " f = " + f );
Transformação de inteiro para String
e consequente concatenação
Transformação de float para String
e consequente concatenação
11/7/16
5
P. Passão / F. S. BarbosaProgramação
Strings
oPara verificar se duas strings são 
iguais NÃO se deve usar o ==
nQuando aplicado a objectos o == indica 
se se trata do mesmo objecto e não se os 
objectos têm o mesmo valor
oSe aplicado a pessoas, por exemplo, o == 
verifica se a pessoa é a mesma e não se tem 
o mesmo nome, Bilhete de identidade, etc 
String s1 = "Isto não funciona bem";
String s2 = "Isto não funciona bem";
if( s1 == s2 )
System.out.println( "São iguais" );
else
System.out.println( "Não são iguais" );
Não são iguais
"Isto não funciona bem";
s2
"Isto não funciona bem";
s1 Os objectos são 
diferentes, apesar 
de terem o 
mesmo conteúdo.
Neste caso não 
são a mesma 
string, apesar do 
texto ser o mesmo
P. Passão / F. S. BarbosaProgramação
Strings
oPara verificar se duas strings são 
iguais deve-se usar o método equals
nO equals liga ao conteúdo
String s1 = "Isto funciona bem";
String s2 = "Isto funciona bem";
if( s1.equals( s2 ) )
System.out.println( "São iguais" );
else
System.out.println( "Não são iguais" );
São iguais
11/7/16
6
P. Passão / F. S. BarbosaProgramação
Strings
oPara verificar se duas strings são 
iguais também se pode usar o método 
equalsIgnoreCase
nO equals liga à diferença entre maiúsculas 
e minúsculas
nO equalsIgnoreCase não liga à diferença 
entre maiúsculas e minúsculas
String s1 = "Isto NÃO FUNCIONA";
String s2 = "Isto não funciona";
if( s1.equals( s2 ) )
System.out.println( "São iguais" );
else
System.out.println( "Não são iguais" );
Não são iguais
String s1 = "Isto FUNCIONA BEM";
String s2 = "Isto funciona bem";
if( s1.equalsIgnoreCase( s2 ) )
System.out.println( "São iguais" );
else
System.out.println( "Não são iguais" );
São iguais
P. Passão / F. S. BarbosaProgramação
Strings
oExercícios:
nEscreva um programa que peça um nome 
e indique quantos caracteres tem esse 
nome
nEscreva um programa que peça dois 
nomes e indique qual deles é o mais 
comprido
nElabore um programa que peça uma 
password e verifique se esta corresponde 
à pretendida
11/7/16
7
P. Passão / F. S. BarbosaProgramação
Strings
oPara comparar duas strings pode-se 
usar o método compareTo
nA sintaxe é s1.compareTo( s2 ) e retorna
oUm valor < 0 se s1 < s2
oUm valor > 0 se s1 > s2
o0 se s1 for igual a s2
nA comparação é feita alfabeticamente
String amalia = "Amália";
String eusebio = "Eusébio";
System.out.print("Os nomes ordenados alfabeticamentes são:");
if( amalia.compareTo( eusebio ) < 0 )
System.out.println( amalia + ", " + eusebio );
else
System.out.println( eusebio + ", " + amalia );
Os nomes ordenados alfabeticamente são: Amália, Eusébio
P. Passão / F. S. BarbosaProgramação
Strings
oPara comparar duas strings pode-se 
usar o método compareToIgnoreCase
nA sintaxe e resultado é igual ao 
compareTo
nA comparação é feita alfabeticamente, 
mas sem ligar às maiúsculas e minúsculas
String zebra = "Zebra";
String antes = "antes";
if( zebra.compareTo( antes ) < 0 )
System.out.println( zebra + ", " + antes );
else
System.out.println( antes + ", " + zebra );
Zebra, antes
String zebra = "Zebra";
String antes = "antes";
if( zebra.compareToIgnoreCase( antes ) < 0 )
System.out.println( zebra + ", " + antes );
else
System.out.println( antes + ", " + zebra );
antes, Zebra
Reparar que as maiúsculas são alfabeticamente menores que as minúsculas
11/7/16
8
P. Passão / F. S. BarbosaProgramação
Strings
oUma string pode ser vista como um 
conjunto de caracteres
nLogo deve-se poder manipular cada um 
deles em particular
oTal como num array os caracteres 
individuais são indexados e começam no 
índice zero
nOs caracteres individuais são acedidos 
usando o método charAt( idx )
charAt( 0 )
charAt( 1 ) charAt( 2 )
U m a S t r i n g
charAt( length() -1 )
P. Passão / F. S. BarbosaProgramação
Strings
oUma string pode ser vista como um 
conjunto de caracteres
nExemplos de charAt
String nome = "Felizberto Desgraçado";
char inicial = nome.charAt( 0 );
char ultima = nome.charAt( nome.lenght()- 1 );
System.out.println( "Inicial = " + inicial );
System.out.println( "Última = " + ultima );
Inicial = F
Última = o
String nome = "Felizberto Desgraçado";
for( int i = 0; i < nome.lenght(); i++ )
System.out.println( nome.charAt( i ) );
F
e
l
i
z
b
e
r
t
o
…
11/7/16
9
P. Passão / F. S. BarbosaProgramação
Strings
oExercícios:
nEscreva um programa que peça dois 
nomes e os apresente por ordem 
alfabética
nEscreva um programa que peça uma 
string e uma letra e indique quantas 
vezes essa letra aparece na string
P. Passão / F. S. BarbosaProgramaçãoStrings
oPode-se obter uma substring de uma dada 
string usando dois métodos substring()
n substring( ini, fim )
oretorna a string entre os índices ini (inclusive) e 
fim (exclusive)
n substring( ini )
oretorna a substring que começa no índice ini 
(inclusive) até ao final da string
String nome = "Felizberto Desgraçado";
String proprio = nome.substring( 0, 10 );
String apelido = nome.substring( 11 );
System.out.println( "Nome próprio = " + proprio );
System.out.println( "Apelido = " + apelido );
Nome próprio = Felizberto
Apelido = Desgraçado
11/7/16
10
P. Passão / F. S. BarbosaProgramação
Strings
oPara fazer pesquisas numa string podem-se 
usar os métodos seguintes:
n indexOf( ch )
oindica em que índice aparece o caracter ch pela 
primeira vez
n indexOf( ch, idx )
oindica em que índice, superior a idx, aparece o 
caracter ch pela primeira vez
n indexOf( str )
oindica em que índice aparece a string str pela 
primeira vez
n indexOf( str, idx )
oindica em que índice, superior a idx, aparece a 
string str pela primeira vez
oSe não encontrarem o especificado o índice 
retornado é -1
P. Passão / F. S. BarbosaProgramação
Strings
oExemplo de algumas pesquisas numa 
string:
String nome = "Felizberto Desgraçado";
int primeiroZ = nome.indexOf( 'z' );
int segundoE = nome.indexOf( 'e', 3 );
int berto = nome.indexOf( "berto" );
System.out.println( "Primeiro z encontrado em " + primeiroZ );
System.out.println( "Encontrado um e em " + segundoE );
System.out.println( "berto começa em " + berto );
Primeiro z encontrado em 4
encontrado um e em 6
berto começa em 5
11/7/16
11
P. Passão / F. S. BarbosaProgramação
Strings
oUma tarefa útil é partir a string em 
pedaços usando para isso um dado 
critério
nusa-se o método split
osplit( critério )
no critério é representado por uma string
nos critérios podem ser combinações de 
caracteres
nou apenas um caracter
oretorna um arrays de strings
P. Passão / F. S. BarbosaProgramação
Strings
oExemplo de split
String nome = "Felizberto João Alegre Desgraçado";
String nomes[] = nome.split( “ " ); // usar o espaço como separador
for( int i = 0; i < nomes.lenght; i++ )
System.out.println( nomes[ i ] );
Felizberto
João
Alegre
Desgraçado
11/7/16
12
P. Passão / F. S. BarbosaProgramação
Strings
oExercícios:
nAltere o programa que conta o número de 
ocorrências de uma letra, de modo a este 
usar o método indexOf
nElabore um programa que peça um nome 
e apresente as suas iniciais
P. Passão / F. S. BarbosaProgramação
Strings
oExercícios:
nAltere o programa do número de 
automóveis vendidos ao longo do ano 
para apresentar o nome do mês e não o 
seu número

Outros materiais