Linguagem I
Strings
Revisão
• Loops
– for
– while
– do – while
• Arrays
– Estruturas estáticas de armazenamento.
• Erros
– ArrayIndexOutOfBoundsException
– Miss by one
Davi Pires {[email protected]}
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 {[email protected]}
Literais
• Quando inicializamos variáveis
diretamente no código, usamos literais.
• Já conhecemos literais numéricos e
booleanos.
• E quanto a “Hello World!” ?
Davi Pires {[email protected]}
Strings
• 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 {[email protected]}
Inicializaçã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 {[email protected]}
Inicializaçã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 {[email protected]}
Inicializaçã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 {[email protected]}
Strings
• Exemplos
– StringConstrutores.java
Davi Pires {[email protected]}
Strings
• 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 {[email protected]}
Strings
• Exemplos:
– Codificacao.java
Davi Pires {[email protected]}
Strings
• 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 {[email protected]}
Strings
• Usos comuns de Strings:
– como texto.
– como atributos de objetos.
• Exemplo: Conta.java
– como chaves de busca.
• Exemplo: próximo slide!
Davi Pires {[email protected]}
Strings
• 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.”);
}
Davi Pires {[email protected]}
==
equals()
Strings
• Exemplo
– RepositorioContas.java
Davi Pires {[email protected]}
Strings
• 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 {[email protected]}
Console
• A classe Console fornece métodos para
leitura / impressão de Strings.
– String readString( );
– void print(String input);
Davi Pires {[email protected]}
Revisão
Dú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 {[email protected]}
Palavras reservadas
boolean
case
default
float
if
int
package
short
this
break
char
do
for
import
long
private
switch
void
byte
class
double
else
while
new
public
return
Davi Pires {[email protected]}
Revisão
• Aula 1:
– Características de Java
– Compilador vs. Interpretador.
– Tipos Primitivos
– Operadores
– Casts
Davi Pires {[email protected]}
Revisão
• Aula 2:
– Classes
– Atributos
– Métodos
– Construtores
– Palavras-chave
• class, void, return, new, this, null
Davi Pires {[email protected]}
Revisão
• Aula 3:
– Pacotes
– Importações
– Modificadores de Visibilidade
– Encapsulamento
Davi Pires {[email protected]}
Revisão
• Aula 4:
– Programação não-estruturada.
– Controle de Fluxo
•
•
•
•
if
if – else
if – else if
switch – case
– Classe Console
Davi Pires {[email protected]}
Revisão
• Aula 5:
– Loops
• for
• while
• do – while
– Arrays
• Armazenamento
– Erros com arrays
Davi Pires {[email protected]}
Revisão
• Aula 6:
– Literais
– Inicializando Strings
– Métodos da classe String
– Comparações de Strings
– Classe Console e Strings
Davi Pires {[email protected]}
Exercícios
Alto nível
Exercícios
• Crivo de Eratóstenes
• Dado um certo número inteiro, retorne
todos os números primos menores do
que ele.
Davi Pires {[email protected]}
Exercí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 {[email protected]}
Exercí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 {[email protected]}
Exercí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 {[email protected]}
Exercí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.
Davi Pires {[email protected]}
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.
Download

String