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:
import java.io.*;
class Exercicio0405
{
public static void main (String args[])
{
String frase = "";
BufferedReader dado;
String g;
try
{
System.out.println("Digite a palavra desejada");
dado = new BufferedReader(new InputStreamReader(System.in));
frase = dado.readLine();
for(int i = 0; i <= frase.length(); i++)
{
System.out.println(frase.charAt(i));
}
}
catch (IOException erro)
{
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
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.
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]
Fiz algumas modificações e aqui o resultado deu certo , segue a classe modificada:
import java.io.*;
class Exercicio0405
{
public static void main (String args[])
{
String frase = "";
StringBuffer palavra = new StringBuffer(200); // Criando um String modificavel com capacidade de ate 200 caracteres
BufferedReader dado;
String g;
try
{
System.out.println("Digite a palavra desejada");
dado = new BufferedReader(new InputStreamReader(System.in));
frase = dado.readLine();
for(int i = 0; i < frase.length(); i++)
{
//System.out.println(frase.charAt(i));
palavra.append(frase.charAt(i)); // Adiciona na String
System.out.println(palavra); // Mostra na tela
}
for(int i = 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 (IOException erro)
{
System.out.println("Houve um erro na entrada de dados");
}
}
}
Resultado:
Digite a palavra desejada
Java
J
Ja
Jav
Java
Jav
Ja
J