Duvidas quanto ao uso do for e CharAt para impressão de determinada palavra [Resolvido]
5 respostas
Luiz_Am_ico
Olá Pessoal,
Estou com mais uma dúvida de exercício, de utilização do charAt e do for. Sou iniciante e estou estudando por conta própria através do Livro Java 2 Ensino Didático.
Preciso imprimir determinada palavra na linha de comando que faça o efeito abaixo:
frase digitada Ex: "JAVA".
J
JA
JAV
JAVA
JAV
JA
J
Porém não estou conseguindo prosseguir, gostaria que ajudassem a entender onde estou cometendo o erro. Segue o código:
importjava.io.*;classExercicio0405{publicstaticvoidmain(Stringargs[]){Stringfrase="";BufferedReaderdado;Stringg;try{System.out.println("Digite a palavra desejada");dado=newBufferedReader(newInputStreamReader(System.in));frase=dado.readLine();for(inti=0;i<=frase.length();i++){System.out.println(frase.charAt(i));}}catch(IOExceptionerro){System.out.println("Houve um erro na entrada de dados");}}}
Tente colocar ao invés de “i<=frase.length()” i<frase.length no loop, está dando que está passando do tamanho da String pelo que testei aqui, assim imprimirá:
J
A
V
A
henriqueluz
Acho que você tem que usar 2 laços “for”.
Você percorre cada indice i da palavra e concatena em uma variavel auxiliar e imprime a variavel.
Nesse laço a saida seria algo do tipo:
J
JA
JAV
JAVA
Você faz o caminho inverso. Percorre usando dessa vez o método substring pegando do inicio até o indice que você ta decrementando.
A saida dessa parte seria
JAV
JA
J
Eu fiz aqui e deu certo com essa ideia. Se não puder usar substring, terei que pensar em outra solucao hehe.
Estou apressado por isso foi a primeira ideia que me veio.
Abraços
Luiz_Am_ico
Eu estou justamente com essa dificuldade de entender o uso dos laços, para exercícios assim. Porém estou aqui tentando. Vou mandar o exercício mesmo se houver algum erro. É nos tropeços que a gente toma força e levanta. Valeu as dicas.
Abraços.
Luiz[i]
“Embora ninguém possa voltar atrás e fazer um novo começo,
Qualquer Um pode Começar agora e fazer um Novo Fim.”[/i][b][i]
Chico Xavier.[/b][/i]
Rafael_Costa_Teixeir
Luiz ,
Fiz algumas modificações e aqui o resultado deu certo , segue a classe modificada:
importjava.io.*;classExercicio0405{publicstaticvoidmain(Stringargs[]){Stringfrase="";StringBufferpalavra=newStringBuffer(200);// Criando um String modificavel com capacidade de ate 200 caracteresBufferedReaderdado;Stringg;try{System.out.println("Digite a palavra desejada");dado=newBufferedReader(newInputStreamReader(System.in));frase=dado.readLine();for(inti=0;i<frase.length();i++){//System.out.println(frase.charAt(i));palavra.append(frase.charAt(i));// Adiciona na StringSystem.out.println(palavra);// Mostra na tela}for(inti=frase.length()-1;i>0;i--){palavra=palavra.deleteCharAt(i);// Remove da string regredindo da ultima para o começo.System.out.println(palavra);// Imprime na tela}}catch(IOExceptionerro){System.out.println("Houve um erro na entrada de dados");}}}
Resultado:
DigiteapalavradesejadaJavaJJaJavJavaJavJaJ
Qualquer duvida posta ai.
Bom Estudo !!!
Luiz_Am_ico
Rafael muito obrigado, pela dica! Isso com que eu pratique mais em busca desse aprendizado.