33
Linguagem I Strings

Linguagem I Strings. Davi Pires {[email protected]} Revisão Loops –for –while –do – while Arrays –Estruturas estáticas de armazenamento. Erros –ArrayIndexOutOfBoundsException

Embed Size (px)

Citation preview

Page 1: Linguagem I Strings. Davi Pires {dpr@cin.ufpe.br} Revisão Loops –for –while –do – while Arrays –Estruturas estáticas de armazenamento. Erros –ArrayIndexOutOfBoundsException

Linguagem I

Strings

Page 2: Linguagem I Strings. Davi Pires {dpr@cin.ufpe.br} Revisão Loops –for –while –do – while Arrays –Estruturas estáticas de armazenamento. Erros –ArrayIndexOutOfBoundsException

Davi Pires {[email protected]}

RevisãoRevisão

• Loops– for– while– do – while

• Arrays– Estruturas estáticas de armazenamento.

• Erros– ArrayIndexOutOfBoundsException– Miss by one

Page 3: Linguagem I Strings. Davi Pires {dpr@cin.ufpe.br} Revisão Loops –for –while –do – while Arrays –Estruturas estáticas de armazenamento. Erros –ArrayIndexOutOfBoundsException

Davi Pires {[email protected]}

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.”

Page 4: Linguagem I Strings. Davi Pires {dpr@cin.ufpe.br} Revisão Loops –for –while –do – while Arrays –Estruturas estáticas de armazenamento. Erros –ArrayIndexOutOfBoundsException

Davi Pires {[email protected]}

LiteraisLiterais

• Quando inicializamos variáveis diretamente no código, usamos literais.

• Já conhecemos literais numéricos e booleanos.

• E quanto a “Hello World!” ?

Page 5: Linguagem I Strings. Davi Pires {dpr@cin.ufpe.br} Revisão Loops –for –while –do – while Arrays –Estruturas estáticas de armazenamento. Erros –ArrayIndexOutOfBoundsException

Davi Pires {[email protected]}

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

Page 6: Linguagem I Strings. Davi Pires {dpr@cin.ufpe.br} Revisão Loops –for –while –do – while Arrays –Estruturas estáticas de armazenamento. Erros –ArrayIndexOutOfBoundsException

Davi Pires {[email protected]}

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”;

Page 7: Linguagem I Strings. Davi Pires {dpr@cin.ufpe.br} Revisão Loops –for –while –do – while Arrays –Estruturas estáticas de armazenamento. Erros –ArrayIndexOutOfBoundsException

Davi Pires {[email protected]}

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.

Page 8: Linguagem I Strings. Davi Pires {dpr@cin.ufpe.br} Revisão Loops –for –while –do – while Arrays –Estruturas estáticas de armazenamento. Erros –ArrayIndexOutOfBoundsException

Davi Pires {[email protected]}

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”;

Page 9: Linguagem I Strings. Davi Pires {dpr@cin.ufpe.br} Revisão Loops –for –while –do – while Arrays –Estruturas estáticas de armazenamento. Erros –ArrayIndexOutOfBoundsException

Davi Pires {[email protected]}

StringsStrings

• Exemplos– StringConstrutores.java

Page 10: Linguagem I Strings. Davi Pires {dpr@cin.ufpe.br} Revisão Loops –for –while –do – while Arrays –Estruturas estáticas de armazenamento. Erros –ArrayIndexOutOfBoundsException

Davi Pires {[email protected]}

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();– ...

Page 11: Linguagem I Strings. Davi Pires {dpr@cin.ufpe.br} Revisão Loops –for –while –do – while Arrays –Estruturas estáticas de armazenamento. Erros –ArrayIndexOutOfBoundsException

Davi Pires {[email protected]}

StringsStrings

• Exemplos:– Codificacao.java

Page 12: Linguagem I Strings. Davi Pires {dpr@cin.ufpe.br} Revisão Loops –for –while –do – while Arrays –Estruturas estáticas de armazenamento. Erros –ArrayIndexOutOfBoundsException

Davi Pires {[email protected]}

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.

Page 13: Linguagem I Strings. Davi Pires {dpr@cin.ufpe.br} Revisão Loops –for –while –do – while Arrays –Estruturas estáticas de armazenamento. Erros –ArrayIndexOutOfBoundsException

Davi Pires {[email protected]}

StringsStrings

• Usos comuns de Strings:– como texto.– como atributos de objetos.

• Exemplo: Conta.java

– como chaves de busca.• Exemplo: próximo slide!

Page 14: Linguagem I Strings. Davi Pires {dpr@cin.ufpe.br} Revisão Loops –for –while –do – while Arrays –Estruturas estáticas de armazenamento. Erros –ArrayIndexOutOfBoundsException

Davi Pires {[email protected]}

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()

Page 15: Linguagem I Strings. Davi Pires {dpr@cin.ufpe.br} Revisão Loops –for –while –do – while Arrays –Estruturas estáticas de armazenamento. Erros –ArrayIndexOutOfBoundsException

Davi Pires {[email protected]}

StringsStrings

• Exemplo– RepositorioContas.java

Page 16: Linguagem I Strings. Davi Pires {dpr@cin.ufpe.br} Revisão Loops –for –while –do – while Arrays –Estruturas estáticas de armazenamento. Erros –ArrayIndexOutOfBoundsException

Davi Pires {[email protected]}

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).

Page 17: Linguagem I Strings. Davi Pires {dpr@cin.ufpe.br} Revisão Loops –for –while –do – while Arrays –Estruturas estáticas de armazenamento. Erros –ArrayIndexOutOfBoundsException

Davi Pires {[email protected]}

ConsoleConsole

• A classe Console fornece métodos para leitura / impressão de Strings.– String readString( );– void print(String input);

Page 18: Linguagem I Strings. Davi Pires {dpr@cin.ufpe.br} Revisão Loops –for –while –do – while Arrays –Estruturas estáticas de armazenamento. Erros –ArrayIndexOutOfBoundsException

Revisão

Page 19: Linguagem I Strings. Davi Pires {dpr@cin.ufpe.br} Revisão Loops –for –while –do – while Arrays –Estruturas estáticas de armazenamento. Erros –ArrayIndexOutOfBoundsException

Davi Pires {[email protected]}

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?

Page 20: Linguagem I Strings. Davi Pires {dpr@cin.ufpe.br} Revisão Loops –for –while –do – while Arrays –Estruturas estáticas de armazenamento. Erros –ArrayIndexOutOfBoundsException

Davi Pires {[email protected]}

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

Page 21: Linguagem I Strings. Davi Pires {dpr@cin.ufpe.br} Revisão Loops –for –while –do – while Arrays –Estruturas estáticas de armazenamento. Erros –ArrayIndexOutOfBoundsException

Davi Pires {[email protected]}

RevisãoRevisão

• Aula 1:– Características de Java– Compilador vs. Interpretador.– Tipos Primitivos– Operadores– Casts

Page 22: Linguagem I Strings. Davi Pires {dpr@cin.ufpe.br} Revisão Loops –for –while –do – while Arrays –Estruturas estáticas de armazenamento. Erros –ArrayIndexOutOfBoundsException

Davi Pires {[email protected]}

RevisãoRevisão

• Aula 2:– Classes– Atributos– Métodos– Construtores– Palavras-chave

• class, void, return, new, this, null

Page 23: Linguagem I Strings. Davi Pires {dpr@cin.ufpe.br} Revisão Loops –for –while –do – while Arrays –Estruturas estáticas de armazenamento. Erros –ArrayIndexOutOfBoundsException

Davi Pires {[email protected]}

RevisãoRevisão

• Aula 3:– Pacotes– Importações– Modificadores de Visibilidade– Encapsulamento

Page 24: Linguagem I Strings. Davi Pires {dpr@cin.ufpe.br} Revisão Loops –for –while –do – while Arrays –Estruturas estáticas de armazenamento. Erros –ArrayIndexOutOfBoundsException

Davi Pires {[email protected]}

RevisãoRevisão

• Aula 4:– Programação não-estruturada.– Controle de Fluxo

• if

• if – else

• if – else if

• switch – case

– Classe Console

Page 25: Linguagem I Strings. Davi Pires {dpr@cin.ufpe.br} Revisão Loops –for –while –do – while Arrays –Estruturas estáticas de armazenamento. Erros –ArrayIndexOutOfBoundsException

Davi Pires {[email protected]}

RevisãoRevisão

• Aula 5:– Loops

• for

• while

• do – while

– Arrays• Armazenamento

– Erros com arrays

Page 26: Linguagem I Strings. Davi Pires {dpr@cin.ufpe.br} Revisão Loops –for –while –do – while Arrays –Estruturas estáticas de armazenamento. Erros –ArrayIndexOutOfBoundsException

Davi Pires {[email protected]}

RevisãoRevisão

• Aula 6:– Literais– Inicializando Strings– Métodos da classe String– Comparações de Strings– Classe Console e Strings

Page 27: Linguagem I Strings. Davi Pires {dpr@cin.ufpe.br} Revisão Loops –for –while –do – while Arrays –Estruturas estáticas de armazenamento. Erros –ArrayIndexOutOfBoundsException

Exercícios

Alto nível

Page 28: Linguagem I Strings. Davi Pires {dpr@cin.ufpe.br} Revisão Loops –for –while –do – while Arrays –Estruturas estáticas de armazenamento. Erros –ArrayIndexOutOfBoundsException

Davi Pires {[email protected]}

ExercíciosExercícios

• Crivo de Eratóstenes

• Dado um certo número inteiro, retorne todos os números primos menores do que ele.

Page 29: Linguagem I Strings. Davi Pires {dpr@cin.ufpe.br} Revisão Loops –for –while –do – while Arrays –Estruturas estáticas de armazenamento. Erros –ArrayIndexOutOfBoundsException

Davi Pires {[email protected]}

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.

Page 30: Linguagem I Strings. Davi Pires {dpr@cin.ufpe.br} Revisão Loops –for –while –do – while Arrays –Estruturas estáticas de armazenamento. Erros –ArrayIndexOutOfBoundsException

Davi Pires {[email protected]}

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);

Page 31: Linguagem I Strings. Davi Pires {dpr@cin.ufpe.br} Revisão Loops –for –while –do – while Arrays –Estruturas estáticas de armazenamento. Erros –ArrayIndexOutOfBoundsException

Davi Pires {[email protected]}

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.

Page 32: Linguagem I Strings. Davi Pires {dpr@cin.ufpe.br} Revisão Loops –for –while –do – while Arrays –Estruturas estáticas de armazenamento. Erros –ArrayIndexOutOfBoundsException

Davi Pires {[email protected]}

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.

Page 33: Linguagem I Strings. Davi Pires {dpr@cin.ufpe.br} Revisão Loops –for –while –do – while Arrays –Estruturas estáticas de armazenamento. Erros –ArrayIndexOutOfBoundsException

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.