Buscar

Aula04_APII_2014-2

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 11 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 11 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 11 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

Curso: Sistemas de Informação e Ciência da Computação 
Disciplina: Algoritmos e Programação II 
Professores: Edeilson Milhomem, Fernando Luiz de 
Oliveira e Madianita Bogo 
 
AULA 04 – 18/08/2014 
 
1 Manipulação de Strings - java 
“Em Java, Strings são sequências de caracteres Unicode” (Horstmann, 2010). Por exemplo, a String “Java 
\u2122” corresponde a Java ™. 
O Java não tem um tipo primitivo String, mas oferece uma classe chamada String, que implementa métodos 
para manipulação de Strings. 
Assim, o tipo de dados String (com S maiúsculo) é uma instância da classe, que podem ser declaradas de duas 
formas: 
 como variáveis normais: 
o String varStr; //Declara a variável e não inicializa 
o String varStr = “Olá!” //Declara a variável e inicializa com o conteúdo Olá! 
 com construtores (um construtor especifica como um objeto deve ser inicializado): 
o String varStr = new String(); //Declara a variável e instancia uma String vazia 
o String varStr = new String(“Olá!”); //Declara a variável e instancia uma String com o conteúdo 
Olá!. 
 
 Os tipos de dados trabalhados até o momento (int, double e char) são chamados de tipos primitivos, ou 
seja, nativos da linguagem de programação. 
 
 É importante se atentar para o fato de que, em Java, Strings são objetos imutáveis. Assim, mesmo 
passando para o método a referência para uma String, alterar a variável no método NÃO irá alterar o 
valor da String referenciada (http://blog.caelum.com.br/strings-imutaveis/). Isso significa que, apesar de 
ser um objeto, ao se passar String para o método o comportamento é o de passagem por valor e não 
por referência. 
 
 
 
Métodos mais comuns para manipulação de Strings (http://hp-sistemas.com/doc/java/Tratamento-Strings.pdf): 
• length() 
Sintaxe: int = varStr.length(); 
Retorna o número de caracteres de uma String. 
Exemplo: int tamanho = varStr.lenght(); //tamanho é uma variável do tipo int 
 
• charAt() 
Sintaxe: char = varStr.charAt(int pos); 
Retorna o caractere (código unicode) de uma String em uma posição (pos) específica. 
Exemplo: char caractere = varStr.charAt(2); 
 
• equals() 
Sintaxe: boolean = varStr.equals(String varStr2); 
Verifica o conteúdo de duas Strings quanto à igualdade de conteúdo. Se as duas Strings tiverem o 
mesmo conteúdo retorna true, senão retorna false. Nesse método, letras maiúsculas e minúsculas são 
consideradas diferentes. 
Exemplo: 
if (varStr.equals(varStr2)) 
{ 
 System.out.println(“As Strings são iguais!”); 
} 
 O conteúdo de duas Strings não pode ser verificado diretamente com a utilização do operador ==, 
pois o mesmo irá comparar as referências (o endereço de memória) dos objetos e não seu conteúdo. 
 
• equalsIgnoreCase() 
Sintaxe: boolean = varStr.equalsIgnoreCase(String varStr2); 
Mesma finalidade do método equals(), porém ignora as variações entre maiúsculas e minúsculas. 
Exemplo: saoIguais = varStr.equalsIgnoreCase(varStr2); 
 
• toUpperCase() 
Sintaxe: String = varStr.toUpperCase(); 
Retorna uma nova String convertendo todos os caracteres em minúsculo da String original para 
maiúsculo. 
 
 
Exemplo: 
 String str = "Teste"; 
 String novaString = str. toUpperCase(); 
 System.out.println(novaString); 
 
Saída (impressão): TESTE 
 
• toLowerCase() 
Sintaxe: String = varStr. toLowerCase(); 
Retorna uma nova String convertendo todos os caracteres em maiúsculo da String original para 
minúsculo. 
Exemplo: 
 String str = "Teste"; 
 String novaString = str.toLowerCase(); 
 System.out.println(novaString); 
 
Saída (impressão): teste 
 
• concat() 
Sintaxe: String str3 = str1.concat(str2); 
Gera e retorna uma nova String (str3) com a junção do conteúdo das duas outras Strings (str1 + str2). 
Exemplo: 
 String str1 = "Olá!"; 
 String str2 = " Bom Dia…"; 
 String str3 = str1.concat(str2); 
 System.out.println(str3); 
 
Saída (impressão): Olá! Bom Dia... 
 
• replace() 
Sintaxe 1: String = str.replace(char oldChar, char newChar); 
Substitui todas as ocorrências de oldChar por newChar (substitui um caractere por outro) e retorna a 
nova String modificada. 
 
 
Exemplo: 
 String str = "fofoca"; 
 String novaString = str.replace('o', 'O'); 
Resultado (conteúdo recebido por novaString): fOfOca 
 
Sintaxe 2: String = str.replace(String oldStr, String newStr); 
Substitui todas as ocorrências de oldStr por newStr (substitui uma String (sequência de caractere) por 
outra) e retorna a nova String modificada. 
Exemplo: 
 String str = "Fui pra casa pra dormir"; 
 String novaString = str.replace("pra", "para"); 
 System.out.println(novaString); 
Resultado (conteúdo recebido por novaString): Fui para casa para dormir 
 
• contains() 
Sintaxe: boolean contem = str.contains(str2); 
Verifica se uma String está dentro de outra; Retorna true se contiver e false se não contiver. 
Exemplos: 
String str = "Ilha do bananal!"; 
boolean contem = str.contains("bananal"); 
if (contem){ 
 System.out.println("Contém string!"); 
} 
else{ 
 System.out.println("Não contém string!"); 
} 
 
Saída (impressão): Contém string! 
if ("Ilha do bananal".contains("bananal"){
 
 System.out.println("Contém string!"); 
} 
else { 
 System.out.println("Não contém string!"); 
} 
 
Saída (impressão): Contém string! 
 
 
• substring() 
Sintaxe 1: String = str.substring(int beginIndex); 
Retorna uma nova String, copiando um trecho indicado de uma String específica. Neste caso, da posição 
(beginIndex) até o fim da String. 
 
 
Exemplo: 
 String str = "Pipoca"; 
String novaString = str.substring(3); 
Resultado (conteúdo recebido por novaString): oca 
 
Sintaxe 2: String = str2.substring(int beginIndex, int endIndex); 
Retorna uma nova String, copiando um trecho indicado de um String específico. Neste caso, da posição 
(beginIndex) até a posição (endIndex – 1) ou seja, beginIndex inclusive e endIndex exclusive. 
Exemplo: 
 String str = "Pipoca"; 
String novaString = str.substring(0,3); 
Resultado (conteúdo recebido por novaString): Pip 
 
• startsWith() 
Sintaxe: boolean = str.startsWith(String str2); 
Retorna true se a String str inicia com a String str2 e false em caso contrário. 
Exemplo: 
String str = "Teste de novos programas!"; 
if (str.startsWith("Teste”)){ 
 System.out.println("A String começa com Teste"); 
} 
 
• endsWith() 
Sintaxe: boolean = str.endsWith(String str2); 
Retorna true se a String str terminar com a String str2 e false em caso contrário. 
Exemplo: 
String str = "Teste de novos programas!"; 
if (str.endsWith("programas!”)){ 
 System.out.println("A String termina com programas!"); 
} 
 
• indexOf() 
Sintaxe 1: int = str.indexOf(char caractere); 
 
 
Retorna a posição da primeira ocorrência de um caractere numa String; Retorna um valor inteiro com a 
posição do caractere ou -1 caso o caractere não exista no String. 
Exemplo: 
String str = "Cabeça!"; 
int posicao = str.indexOf('a'); 
Resultado (conteúdo recebido por posicao): 1 
 
Sintaxe 2: int = str2.indexOf(char caractere, int deOnde); 
Retorna a posição da primeira ocorrência de um caractere numa String a partir da posição especificada 
no segundo argumento (deOnde). Retorna um valor inteiro com a posição do caractere ou -1 caso o 
caractere não exista no String. 
Exemplo: 
String str = "Cabeça!"; 
int posicao = str.indexOf('a', 3); 
Resultado: 5 
 
Sintaxe 3: int = str1.indexOf(String str2); 
Retorna a posição do primeiro caractere da primeira ocorrência de uma String numa outra String. 
Também podese passar um segundo argumento de onde iniciar a pesquisa. 
Exemplo: 
String str = "cotoco!"; 
int posicao = str.indexOf("co"); 
Resultado: 0 
 
Sintaxe 4: int = str2.indexOf(String str1, int deOnde); 
Retorna a posição do primeiro caractere da primeira ocorrência de uma String numa outra String a partir 
da posição especificada no segundo argumento (deOnde). Retorna um valor inteiro com a posição do 
caractere ou -1 caso a String não exista no String. 
Exemplo: 
String str = "cotoco!"; 
int posicao = str.indexOf("co",2); 
Resultado: 4 
 
 
 
• lastIndexOf() 
Semelhante ao indexOf(), mas retorna a posição da última ocorrência de um caractere ou String em uma 
String. 
 
• compareTo() 
int = str2.compareTo(String str1); 
Compara duas Strings e apresenta um dos seguints retornos: 
- 0 (zero) se as duas strings forem iguais; 
- um número negativo se o String que chama o método for menor (vier antes no alfabeto) que o 
String passado como parâmetro; 
- um número positivo se o String que chama o método for maior (vier depois no alfabeto) que o 
String que for passado como parâmetro. 
Exemplo: 
 String str1 = "Ana"; 
 String str2 = "João"; 
 int retorno = str1.compareTo(str2); 
Resultado (conteúdo recebido por retorno): -9 
 
• compareToIgnoreCase() 
Mesma finalidade e sintaxe do método compareTo(), porém ignora as variações entre maiúsculas e 
minúsculas. 
 
• trim() 
Sintaxe: String str2 = str.trim(); 
Retorna uma nova String eliminando todos os espaços a direita e a esquerda da String original. 
Exemplo: 
 String str = " Teste de novos programas! "; 
 str = str.trim(); 
 System.out.println(str); 
Saída (impressão): Teste de novos programas!  sem espaços antes e depois. 
 
 
 
2 Exercício 
1. Faça um programa que solicite uma frase ao usuário e a imprima de traz para frente. 
 
2. Faça um programa que solicite aos 20 inscritos em um minicurso, o nome e a instituição em que estuda. 
Imprima apenas os nomes de quem estuda no CEULP. 
 
3. Faça um programa para ler os dados de 15 produtos de um supermercado. Estes dados consistem de: nome 
do produto, categoria, quantidade em estoque e preço unitário. Ao final do programa imprima na tela o 
número de produtos em estoque da categoria ‘perecível’ e a média dos preços unitários dos produtos que 
pertençam a categoria ‘diversos’. 
 
4. Faça um programa que solicite uma string ao usuário, bem como uma posição inicial e final. Ao final, 
imprima a substring referente a estas posições. 
Atenção: a posição inicial deve ser maior ou igual a zero e a posição final deve ser menor do que o 
tamanho da string. 
 
5. Faça um programa que realize as seguintes ações: 
 Leia, preencha e imprima um vetor A com 6 Strings; 
 Configure com letras maiúsculas as Strings das posições pares do vetor; 
 Configure com letras minúsculas as Strings das posições ímpares do vetor; 
 Imprima o vetor resultante. 
 
6. Faça um programa que solicite um texto ao usuário (máximo de 500 caracteres, caso o texto seja maior, 
deve-se solicitar um novo texto). Posteriormente, o programa deve ficar solicitando palavras ao usuário e 
verificar se esta palavra está contida no texto lido anteriormente. Se sim, imprima: ‘Palavra Encontrada’. Se 
não, imprima: ‘Palavra Inexistente’. O programa deve ser finalizado quando o usuário digitar a palavra 
‘parar’. 
 
7. Você foi contratado para fazer o controle dos alunos de uma creche. Para isso, faça um programa que: 
 Inicialmente, leia a quantidade de crianças da creche; 
 Leia, para cada criança, os seguintes dados: nome completo, sexo e idade. 
 Calcule e imprima: 
- A quantidade de meninas que não completou um ano e que possuem “Silva” no nome; 
- A média de idade das crianças que têm “Sousa” como último sobrenome; 
 
 
- A quantidade de meninos com o primeiro nome “Luiz”. 
 
8. Faça um programa que solicite a etnia (branca, negra e amarela) dos alunos de um curso de dança e informe 
a quantidade total de alunos e o percentual de cada etnia. 
 A leitura deve parar quando o usuário digitar uma etnia que não consta na lista. 
 Considere que o usuário pode digitar a etnia com letras maiúsculas ou minúsculas. 
 
9. Faça um programa que leia e imprima uma frase digitada pelo usuário. Depois, crie e imprima uma nova 
frase trocando a letra ‘a’ por ‘4’, a letra ‘e’ por ‘3’ e a letra ‘i’ por ‘1’. 
 
10. Faça um programa que leia duas palavras e, a partir delas, realizar as seguintes ações: 
- imprimir as duas palavras em ordem alfabética. 
- informar se as palavras são iguais ou diferentes. 
- se as palavras forem diferentes, informar qual das duas é a menor palavra (em quantidade de bytes). 
- criar uma terceira palavra formada pelas outras duas palavras separadas por espaço. 
 
11. Faça um programa que leia 10 nomes e armazene em um vetor de Strings e imprima os nomes na ordem 
digitada. Depois, ordene o vetor em ordem alfabética e imprima os nomes em ordem alfabética. 
 
12. Faça um programa que, inicialmente, leia um texto, depois apresente ao usuário um menu com as seguintes 
opções: 
1: Imprimir o texto 
2: Substituir caractere 
 Deve solicitar ao usuário o caractere que deseja alterar e o novo caractere. 
3: Informar o tamanho do texto 
4: Pesquisar no Texto 
 Deve solicitar ao usuário uma palavra e informar de ela existe no texto ou se ela não foi encontrada. 
Caso a palavra seja encontrada, informar também a posição inicial da primeira vez que ela aparece 
no texto. 
5: Sair 
 O programa deverá ficar em execução até que o usuário digite a opção 5. 
 
13. Faça um programa que solicite ao usuário 10 frases e guarde em um vetor. Depois, solicite ao usuário uma 
palavra e informe quantas frases possuem a palavra digitada e em quais posições do vetor ela aparece. 
 
 
 
14. Faça um programa que solicite ao usuário 10 nomes completos e guarde em um vetor de Strings. Depois, 
solicite ao usuário um nome e informe quantas pessoas possuem o primeiro nome igual ao nome digitado. 
 
15. Faça um programa que leia uma frase do teclado e guarde em uma string. Depois, conte e apresente 
quantas palavras existem nessa string. 
- Considere que cada palavra é separada por apenas um espaço em branco. 
- A frase sempre tem uma palavra a mais que a quantidade de espaços. Por exemplo, a frase "Eu vou 
embora!" tem três palavras e dois espaços. 
 
16. Crie um programa para ler um conjunto indefinido de palavras, as quais deverão ser reunidas 
(concatenadas) em uma única variável. O processo de leitura deve se repetir até que o usuário digite a 
palavra ‘sair’. Esta palavra não deve ser armazenada. Ao final do programa imprima o número de caracteres 
digitados pelo usuário, bem como a porcentagem de vogais (para contar as vogais será necessário percorrer 
a string com um laço de repetição (de zero até o tamanho da string) e fazer um condicional: if 
(texto.charAt(i) == ‘a’ || texto.charAt(i) == ‘e’...)). 
 
17. Uma escola possui um programa que controla as notas dos alunos por bimestre, sendo que guarda as 
informações da seguinte forma: 
a. Um vetor de string para armazenar os nomes de cada aluno; 
b. Uma matriz bidimensional Nx4 guarda as notas dos alunos, sendo que as linhas correspondem aos 
30 alunos matriculados na disciplina e as colunas correspondem aos 4 bimestres. 
c. Um vetor onde são guardadas as médias das notas de cada aluno. 
d. O índice (posição) da linha da matriz e os índices dos vetores correspondem ao mesmo aluno. 
Faça um programa que execute as seguintes ações: 
a. Leia o vetor de nomes; 
b. Leia a matriz de notas; 
c. Preencha o vetor MEDIAS a partir dos dados da matriz;d. Imprima o nome, as notas e a média alcançada por cada aluno. 
e. Solicite um nome, veja se o mesmo existe no cadastro e, caso exista, imprima a média obtida pelo 
aluno indicado. Caso não, informe que este aluno não está cadastrado. 
 
3 Referências Bibliográficas 
Horstmann, Cay S. Core Java, volume I: Fundamentos - 8ª edição. Editora Pearson Prentice Hall, 2010.

Outros materiais