Você está na página 1de 4

Lista

de Exerccios 03 Strings em Java (v2)



Lembre-se que antes de implementar devemos modelar, e pensar nos testes que sero
realizados. Ao modelar devemos pensar no objeto do mtodo, quais sero suas caractersticas e interao
com outros mtodos.
Em todos os exerccios implemente a main com os testes.

Ateno: Em 13/09/2016 a lista foi revisada nos seguintes pontos:
Ajuste no texto dos exerccios ao contedo da disciplina dada at o momento.
Incluso de novos exerccios (a partir do 13).
Para identificar os ajustes, o texto original foi riscado (exemplo) e um novo foi fornecido. O texto novo
est em azul.

Exerccio 1:
Faa um programa que, a partir de uma string digitada pelo usurio, imprima:
a) O nmero de caracteres da string.
b) A string com todas suas letras em maisculo.
c) O nmero de vogais da string.
d) Se a string digitada comea com UNI (ignorando maisculas/minsculas).
e) Se a string digitada termina com RIO (ignorando maisculas/minsculas).
f) O nmero de dgitos (0 a 9) da string.
g) Se a string um palndromo ou no.

Exerccio 2:
Gere o reverso de uma string. Por exemplo:
"Hello" -> "olleH"
"We love Java" -> "avaJ evol eW"

Exerccio 3:
Escreva SIM se uma string for um palndromo ou NO em caso contrrio. Um palndromo uma palavra
escrita da mesma forma da frente para trs e de trs para frente.

Exerccio 4:
Escreva um programa que dado um valor numrico digitado pelo usurio (armazenado em uma varivel
inteira), imprima cada um dos seus dgitos por extenso.

Por exemplo:
Entre o nmero: 4571
Resultado: quatro, cinco, sete, um

Exerccio 5:
Imprima as palavras componentes de uma string, sendo uma em cada linha. Considere que o espao em
branco usado para separar as palavras.

Exerccio 6:
Escreva um programa que, a partir de um nome informado pelo usurio, exiba suas iniciais.

As iniciais so formadas pela primeira letra de cada nome, sendo que todas devero aparecer em
maisculas na sada do programa. Note que os conectores e, do, da, dos, das, de, di, du no so
considerados nomes e, portanto, no devem ser considerados para a obteno das iniciais. As iniciais
devem ser impressas em maisculas, ainda que o nome seja entrado todo em minsculas.

Exemplos:
Maria das Graas Pimenta => MGP Joo Carlos dos Santos => JCS
Jos da Silva => JS
Pedro Pereira Teixeira => PPT


Exerccio 7:
Faa um programa que, a partir de um texto digitado pelo usurio, conte o nmero de caracteres total e
o nmero de palavras (palavra definida por qualquer sequncia de caracteres delimitada por espaos
em branco) e exiba o resultado.

Exerccio 8:
Faa um programa que, a partir de um texto digitado pelo usurio, imprima o texto removendo todos os
espaos em branco adicionais encontrados, de modo que haja, no mximo, um espao em branco
separando as palavras presentes nesse texto.

Exerccio 9:
a) Considere uma string contendo os resultados de jogos, conforme apresentado abaixo. Escreva um
programa para descobrir o nmero de vitrias do Flamengo, quantos jogos do time resultaram em empate
e quantas vezes o Flamengo perdeu. Apresente tambm quantos gols o Flamengo marcou e quantos
sofreu. Considerando que o time ganha 3 pontos por vitria, 1 ponto por empate e zero pontos em uma
derrota, calcule quantos pontos o Flamengo ganhou. O resultado do programa deve ser apresentado
como a tabela abaixo.

String resultados = "Flamengo 1 Fluminense 0, Botafogo 1 Flamengo 1, Flamengo 3 1 Vasco, Barcelona 2
Flamengo 1, Bayern 2 Flamengo 4".

Considere a seguinte string contendo os resultados a ser passada para a funo como parmetro:
String resultados = "Flamengo 1 Fluminense 0, Botafogo 1 Flamengo 1,
Flamengo 3 Vasco 1, Barcelona 2 Flamengo 1, Bayern 2 Flamengo 4".


O resultado do programa deve ser apresentado como abaixo.

Resultado da execuo:
Nmero
Nmero
Nmero
Nmero
Nmero
Nmero

de
de
de
de
de
de

vitrias = 3
empates = 1
derrotas = 1
gols marcados = 10
gols tomados = 6
pontos = 10


b) Encapsule seu programa em uma classe. Defina um conjunto de mtodos (e construtores) conforme
apropriado. Considere que a classe deva ser genrica, funcionando para qualquer nome de time para o
qual se quer saber o resultado.

b) Crie funes conforme apropriado. Considere que as funes devam ser genricas, funcionando para
qualquer nome de time para o qual se quer saber o resultado (e no apenas o Flamengo).

Exerccio 10:
Calcule o resultado de expresses simples, como 17 + 3 e 3,14159 * 4.7. Assuma que as expresses so
sempre constitudas de um nmero seguido por um operador e outro nmero. Os operadores permitidos
so +, -, * e /.

Exerccio 11:
Calcule o valor decimal de um nmero recebido em base 16 (hexadecimal). Apresente uma mensagem de
erro caso receba uma entrada que no represente um nmero hexadecimal vlido.

Exerccio 12:
Um algoritmo gentico tcnica de inteligncia artificial que se inspira na forma como a natureza
funciona e na teoria da evoluo para resolver problemas complexos. Os algoritmos genticos
funcionando mantendo uma populao de estruturas que evoluem de forma semelhante evoluo das
espcies.

algoritmos
genticos
funcionando
de estruturas
que evoluem
natureza
funciona
e na
teoria damantendo
evoluo uma
para populao
resolver problemas
complexos.
Os
de forma semelhante
evoluo das
espcies.uma populao de estruturas que evoluem
algoritmos
genticos funcionando
mantendo
de forma semelhante evoluo das espcies.
A recombinao e a mutao so os operadores bsicos de um algoritmo gentico.
A recombinao e a mutao so os operadores bsicos de um algoritmo gentico.
Considerando que os indivduos da populao so codificados atravs de strings, o
A recombinao e a mutao so os operadores bsicos de um algoritmo gentico.
Considerando
operador de recombinao
recebedaduas
strings S1so
e S2,
sorteia aleatoriamente
um ponto
que os indivduos
populao
codificados
atravs de strings,
o
Considerando
que
os
indivduos
da
populao
so
codificados
atravs
de
strings,
o
operador
de corte em
S1 e S2. Em seguida,
a troca
informaes
genticas de um
S1 eponto
S2, dede
operador
de recombinao
receberealizada
duas strings
S1 edeS2,
sorteia aleatoriamente
recombinao recebe duas strings S1 e S2, sorteia aleatoriamente um ponto de corte em S1 e S2. Em
forma
doisEmnovos
indivduos
abaixogenticas
ilustra odeprocesso
de
de
corte aemgerar
S1 e S2.
seguida,
realizada filhos.
a troca Adefigura
informaes
S1 e S2, de
seguida, realizada a troca de informaes genticas de S1 e S2, de forma a gerar dois novos indivduos
recombinao.
forma a gerar dois novos indivduos filhos. A figura abaixo ilustra o processo de
filhos. A figura abaixo ilustra o processo de recombinao.
recombinao.


O operador de mutao consiste em sortear aleatoriamente uma posio em um dos
e entoconsiste
modificar
o contedouma
daquela
posio.
A figura
O operador de mutao consiste em sortear aleatoriamente uma posio em um dos indivduos filhos, e
Oindivduos
operador filhos,
de mutao
emaleatoriamente
sortear aleatoriamente
posio
em um
dos
ento modificar aleatoriamente o contedo daquela posio. A figura abaixo ilustra o processo de
abaixo ilustra
o processo
de mutao.
indivduos
filhos,
e ento modificar
aleatoriamente o contedo daquela posio. A figura
mutao.

abaixo ilustra o processo de mutao.



Construa um programa em Java que implemente e utilize as funes recombinacao
e mutacao: e
Construa um programa em Java que implemente e utilize as funes recombinacao
mutacao:
A funo recombinacao recebe como parmetro 4 Strings (S1, S2, S3 e S4), onde S1 e S2 so
Construa
um programa em Java que implemente e utilize as funes recombinacao e
as Strings representado os indivduos pais e S3 e S4 devem retornar os dois indivduos filhos
mutacao:
gerados com a recombinao de S1 e S2. Ambas as strings devem possuir o mesmo tamanho.
A funo recombinacao
recebe como parmetro 4 Strings (S1, S2, S3 e S4),
A funo mutacao
recebe como parmetro uma string S1 e modifica o contedo de S1
onde
S1
e
S2
so
as
Strings
representado
os indivduos
pais (S1,
e S3S2,
e S4
realizando o processo de mutao. O seu programa deve ler duas strings S1 e S2 (de mesmo
A funo recombinacao recebe
como parmetro
4 Strings
S3 edevem
S4),
tamanho), fazer a recombinao dos dois indivduos e aplicar uma mutao em um dos
retornar
os
dois
indivduos
filhos
gerados
com
a
recombinao
de
S1
e
S2.
Ambas
onde S1 e S2 so as Strings representado os indivduos pais e S3 e S4 devem
indivduos resultantes. Por ultimo, o programa deve exibir os 4 indivduos da populao (S1, S2,
as strings
possuir o filhos
mesmo
tamanho.
retornar
osdevem
dois indivduos
gerados
com a recombinao de S1 e S2. Ambas
S3 e S4).
A
funo
mutacao
recebe
como
parmetro
as strings devem possuir o mesmo tamanho. uma string S1 e modifica o contedo

S1 realizando
o processo
de mutao.
Exerccio 13:
Ade
funo
mutacao
recebe como
parmetro uma string S1 e modifica o contedo
Faa um programa em Java que pea ao usurio para digitar um texto e informe quantos caracteres
de S1 realizando o processo de mutao.
possui o texto informado pelo usurio. Faa 2 verses, utilizando e no utilizando o mtodo length().
O seu programa deve ler duas strings S1 e S2 (de mesmo tamanho), fazer a recombinao

indivduos
aplicar
mutao
em(de
ummesmo
dos indivduos
resultantes.
Por ultimo, o
Exerccio 14:
Odos
seudois
programa
devee ler
duasuma
strings
S1 e S2
tamanho),
fazer a recombinao
Faa um programa em Java que mostre a sada abaixo. Utilize o mtodo charAt().
programa
deve exibir
os 4 indivduos
da populao
(S1,
S2, S3 e S4).
dos
dois indivduos
e aplicar
uma mutao
em um dos
indivduos
resultantes. Por ultimo, o
J

programa
Ja deve exibir os 4 indivduos da populao (S1, S2, S3 e S4).
Jav
Java
Jav
Ja
J


Exerccio 15:
Escreva um programa que informe se em uma frase fornecida pelo usurio existem caracteres
numricos.


Exerccio 16:
Construa um programa em Java que pea ao usurio para digitar um texto em letras maisculas e
mostre o texto em letra minscula, em seguida solicite o um texto em letra minscula e mostre o em
letras maisculas. Utilize os mtodos toLowerCase() e toUpperCase().

Exerccio 17:
Construa um programa que solicite uma frase escrita pelo usurio. Pea ao usurio para escolher uma
palavra da frase escrita e substitu-la por outra paravra. Utilize o mtodo replace().

Exerccio 18:
Faa uma funo que converta os valores armazenados em um array (de qualquer tamanho) de inteiros
em uma string. Utilize o mtodo valueOf().

Por exemplo, o array {1, 2, 50, 23, 04} deve ser transformado na string [1, 2, 50, 23, 04].

Exerccio 19:
Faa uma funo que a partir de uma string formada por nmeros inteiros separados por espao em
uma string formada por letras, respeitando os pares de cdigo abaixo. Utilize o mtodo replace().

Cdigos de substituio:
1 = a, 3 = c, 4 = d, 12 = m, 14 = o, 15 = p, 17 = r, 19 = t, 20 = u

Por exemplo, a string 3 14 12 15 20 19 1 4 14 17 7 8, o valor retornado deve ser:
c o m p u t a d o r 7 8

Exerccio 20:
Construa um programa que solicite uma frase escrita pelo usurio e uma palavra a ser buscada. Crie
uma funo que retorne o ndice referente posio da palavra na frase. Utilize o mtodo indexOf().

Por exemplo, palavra obrigado est no ndice 12 dentro da frase At mais, e obrigado pelos peixes.

Exerccio 21:
Escreva um programa para ler uma frase e um caractere. Sempre que o caractere lido aparecer na frase
ele deve ser substitudo por asterisco. Por exemplo se os valores fornecidos fossem para a frase: o dia
esta nublado, e para o caractere: a, o programa dever fornecer o seguinte resultado: o di* est*
nubl*do.



Fonte:
Mrcio Barros (via https://www.weheartswift.com/strings/), Pedro Moura e Edirlei Lima
Material da internet:
http://vqv.com.br/java/LTP1/LISTA_DE_EXERCICIOS_12.pdf
http://www.pb.utfpr.edu.br/omero/Java/Fontes/Lista%20String/Lista%20String.HTM