View
108
Download
1
Category
Preview:
Citation preview
Linguagem I
Strings
Davi Pires {dpr@cin.ufpe.br}
RevisãoRevisão
• Loops– for– while– do – while
• Arrays– Estruturas estáticas de armazenamento.
• Erros– ArrayIndexOutOfBoundsException– Miss by one
Davi Pires {dpr@cin.ufpe.br}
Flashback...Flashback...
• Voltemos ao HelloWorld
public class HelloWorld {
public static void main (String[] args) {
System.out.println("Hello World!");}
}
“Nem tudo no código é código.”
Davi Pires {dpr@cin.ufpe.br}
LiteraisLiterais
• Quando inicializamos variáveis diretamente no código, usamos literais.
• Já conhecemos literais numéricos e booleanos.
• E quanto a “Hello World!” ?
Davi Pires {dpr@cin.ufpe.br}
StringsStrings
• Texto (seqüências de caracteres) são armazenadas em Java na forma de Strings.
• Inicialização de Strings– Usando literais.– Usando o comando new
Davi Pires {dpr@cin.ufpe.br}
Inicialização de StringsInicialização de Strings
• Java assume que os literais de String não mudam nunca.
• Por isso duas variáveis com o mesmo valor literal podem ter também o mesmo objeto.
String a = “uma string”;“uma string”
String b = “uma string”;
Davi Pires {dpr@cin.ufpe.br}
Inicialização de StringsInicialização de Strings
• Vários Construtores:– String( )– String( byte[ ] bytes )– String( char[ ] chars )– String( String original )– String( StringBuffer buffer )– ...
• Todos inicializam novos objetos.
Davi Pires {dpr@cin.ufpe.br}
Inicialização de StringsInicialização de Strings
String a = “uma string”; “uma string”
String b = new String(a);
String a = “uma string”;“uma string”
String b = “uma string”;
Davi Pires {dpr@cin.ufpe.br}
StringsStrings
• Exemplos– StringConstrutores.java
Davi Pires {dpr@cin.ufpe.br}
StringsStrings
• Métodos interessantes da classe String– char charAt(int posicao);– String substring(int posicao);– int compareTo(String outraString);– String concat(String outraString);– int length();– String valueOf(..);– void trim();– ...
Davi Pires {dpr@cin.ufpe.br}
StringsStrings
• Exemplos:– Codificacao.java
Davi Pires {dpr@cin.ufpe.br}
StringsStrings
• Exercícios:– Faça um método que identifica se uma
dada String é parte de outra String.– [ opcional ] Converta datas como
“08/04/2005” em “08 de Abril de 2005”.– [ opcional ] Implementar o método que
decodifica uma String, que tenha sido codificada pelo Codificador.
Davi Pires {dpr@cin.ufpe.br}
StringsStrings
• Usos comuns de Strings:– como texto.– como atributos de objetos.
• Exemplo: Conta.java
– como chaves de busca.• Exemplo: próximo slide!
Davi Pires {dpr@cin.ufpe.br}
StringsStrings
• Comparando Strings
String a = “uma string”; String b = new String(a);
if(a == b) {System.out.println(“a e b são iguais.”);
} else {System.out.println(“a e b são diferentes.”);
}
if(a.equals(b)) {System.out.println(“a e b são iguais.”);
} else {System.out.println(“a e b são diferentes.”);
}
==
equals()
Davi Pires {dpr@cin.ufpe.br}
StringsStrings
• Exemplo– RepositorioContas.java
Davi Pires {dpr@cin.ufpe.br}
StringsStrings
• Outros métodos para comparação:– boolean equalsIgnoreCase(String string);
• Ignora maiúsculas e minúsculas.
– int compareTo(String string);• Ordem alfabética (ou lexicográfico).
Davi Pires {dpr@cin.ufpe.br}
ConsoleConsole
• A classe Console fornece métodos para leitura / impressão de Strings.– String readString( );– void print(String input);
Revisão
Davi Pires {dpr@cin.ufpe.br}
DúvidasDúvidas
• Quais exercícios você não conseguiu fazer?
• Quais aulas foram mais difíceis?
• Quais estruturas você não entende como funciona?
• Feedback– O que faltou?– O que teve demais?
Davi Pires {dpr@cin.ufpe.br}
Palavras reservadasPalavras reservadas
boolean break byte
case char class
default do double
float for else
if import while
int long new
package private public
short switch return
this void
Davi Pires {dpr@cin.ufpe.br}
RevisãoRevisão
• Aula 1:– Características de Java– Compilador vs. Interpretador.– Tipos Primitivos– Operadores– Casts
Davi Pires {dpr@cin.ufpe.br}
RevisãoRevisão
• Aula 2:– Classes– Atributos– Métodos– Construtores– Palavras-chave
• class, void, return, new, this, null
Davi Pires {dpr@cin.ufpe.br}
RevisãoRevisão
• Aula 3:– Pacotes– Importações– Modificadores de Visibilidade– Encapsulamento
Davi Pires {dpr@cin.ufpe.br}
RevisãoRevisão
• Aula 4:– Programação não-estruturada.– Controle de Fluxo
• if
• if – else
• if – else if
• switch – case
– Classe Console
Davi Pires {dpr@cin.ufpe.br}
RevisãoRevisão
• Aula 5:– Loops
• for
• while
• do – while
– Arrays• Armazenamento
– Erros com arrays
Davi Pires {dpr@cin.ufpe.br}
RevisãoRevisão
• Aula 6:– Literais– Inicializando Strings– Métodos da classe String– Comparações de Strings– Classe Console e Strings
Exercícios
Alto nível
Davi Pires {dpr@cin.ufpe.br}
ExercíciosExercícios
• Crivo de Eratóstenes
• Dado um certo número inteiro, retorne todos os números primos menores do que ele.
Davi Pires {dpr@cin.ufpe.br}
ExercíciosExercícios
• Faça um programa que calcule a multiplicação, a divisão, o resto da divisão e o fatorial de 2 números.
• Trivial, né? Agora tente fazer isso sem usar os operadores *, /, e % .
• REUSE seu código o máximo possível.
Davi Pires {dpr@cin.ufpe.br}
ExercícioExercício
• Faça um método que, dado um array de inteiros, ele seja capaz de colocar os inteiros em ordem ascendente.
• Agora, faça um método que, dado um array de Strings, ele seja capaz de colocar as Strings em ordem alfabética.– veja o método compareTo(String string);
Davi Pires {dpr@cin.ufpe.br}
ExercíciosExercícios
• Use o que você sabe sobre:– Strings– Busca em Arrays
• E faça um dicionário!– Dada uma palavra, ele busca no array de,
digamos, EntradaDeDicionario, e retorna o significado da palavra.
– Inicialize o dicionário “na mão”, mesmo.
Davi Pires {dpr@cin.ufpe.br}
ExercíciosExercícios
• Uma alternativa ao exercício anterior.• Implemente um programa a ser usado por
uma loja de CD’s.• Os clientes podem buscar cd’s tanto pelo
nome do artista como pelo nome do álbum.• A busca retorna os dados do CD
– Artista.– Nome do álbum.– Lista de músicas.
Este trabalho está licenciado sob uma Licença Creative Commons Atribuição-Uso Não-Comercial-Compatilhamento pela mesma licença. Para ver uma cópia desta licença, visite http://creativecommons.org/licenses/by-nc-sa/2.0/br/ ou envie uma carta para Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
Recommended