Faça um programa que receba a palavra “Java” e mostre a seguinte saída:
J
Ja
Jav
Java
Jav
Ja
J
Obs: Dever ser realizada a implementação com o método charAt()
Eu fiz assim:
public static void main(String[] args) {
String palavra = "Java";
for (int i = 0; i < palavra.length(); i++) {
System.out.println(palavra.charAt(i));
}
}
E qual seria a sua dúvida? Imprimir ao contrário?
sugestão: usa o metodo print para imprimir uma letra
e usa o metodo println para imprimir uma linha nova.
agora vc precisa fazer um “vai e vem”. vc pode usar dois loops ( um indo e um voltando ) ou um laço for apenas e um pouco de imaginação (matematica)
String palavra = "Java Platform";
StringBuilder impressao = new StringBuilder();
for(int i = 0; i < palavra.length(); i++) {
impressao.append(palavra.charAt(i));
System.out.println(impressao.toString());
}
for(int i = palavra.length()-1; i >= 0; i--) {
System.out.println(palavra.substring(0, i));
}
Dê uma olhada neste código, é uma implementação bem simples e bem expressiva. Se tiver alguma dúvida pergunte aqui
Tem como fazer a volta usando o mesmo sistema do primeiro for?
for(int i = 0; i < palavra.length(); i++) {
impressao.append(palavra.charAt(i));
System.out.println(impressao.toString());
}
Tem sim:
String palavra = "Java";
StringBuilder impressao = new StringBuilder();
StringBuilder impressaoReversa = new StringBuilder();
int comprimento = palavra.length() - 1;
for(int i = 0; i < palavra.length(); i++) {
impressao.append(palavra.substring(0, i+1)).append("\n");
impressaoReversa.append(palavra.substring(0, comprimento - i)).append("\n");
}
System.out.println(impressao.toString());
System.out.println(impressaoReversa.toString());
Marcus_Gp:
Tem sim:
String palavra = "Java";
StringBuilder impressao = new StringBuilder();
StringBuilder impressaoReversa = new StringBuilder();
int comprimento = palavra.length() - 1;
for(int i = 0; i < palavra.length(); i++) {
impressao.append(palavra.substring(0, i+1)).append("\n");
impressaoReversa.append(palavra.substring(0, comprimento - i)).append("\n");
}
System.out.println(impressao.toString());
System.out.println(impressaoReversa.toString());
Ele pediu pra usar o charAt().
public class ExercicioChartAt {
String word = “Java”;
public ExercicioChartAt() {
call(1);
call(2);
call(3);
call(4);
call(3);
call(2);
call(1);
}
public static void main(String[] args) {
new ExercicioChartAt();
}
public void call(int ate) {
for(int x=0; x < ate; x++) {
System.out.print( word.charAt(x) );
}
System.out.println("");
}
}
Forma Variavel
public class ExercicioCharAtVariavel {
public ExercicioCharAtVariavel() {
System.out.println("********************** variavel");
call("JavaFX-AbraCadabra");
}
public static void main(String[] args) {
new ExercicioCharAtVariavel();
}
public void call(String word_variavel) {
for(int x=0; x < word_variavel.length(); x++) {
for(int z=0; z < x+1; z++) {
System.out.print( word_variavel.charAt(z) );
}
System.out.println("");
}
for(int x=word_variavel.length(); x >= 0; x--) {
for(int z=0; z < x-1; z++) {
System.out.print( word_variavel.charAt(z) );
}
System.out.println("");
}
}
}
Meu código ficou assim:
public static void main(String[] args) {
String palavra = "Java";
StringBuilder impressao = new StringBuilder();
for (int y = 0; y < palavra.length(); y++) {
impressao.append(palavra.charAt(y));
System.out.println(impressao.toString());
}
for (int x = impressao.length(); x >= 0; x--) {
for (int z = 0; z < x - 1; z++) {
System.out.print(impressao.charAt(z));
}
System.out.println("");
}
}
Obrigado a ajuda ae
se vc usar a mesma logica do for “debaixo” vc nao precisa do String builder
Ah blz, assim também deu certo… Vlw
public static void main(String[] args) {
String palavra = "Java";
for (int x = 0; x <= palavra.length() + 1; x++) {
for (int z = 0; z < x - 1; z++) {
System.out.print(palavra.charAt(z));
}
System.out.println("");
}
for (int x = palavra.length(); x >= 0; x--) {
for (int z = 0; z < x - 1; z++) {
System.out.print(palavra.charAt(z));
}
System.out.println("");
}
}
Há muitas formas de resolver este exercício.
Exemplo utilizando recursividade:
public class Exemplo {
public static void main(String[] a) {
String palavra = "Java";
int caracteres = 1;
imprime(palavra, caracteres);
}
static boolean imprime(String palavra, int caracteres) {
if (caracteres > palavra.length()) {
return false;
}
StringBuilder texto = new StringBuilder();
for (int posicao = 0; posicao < caracteres; posicao++) {
texto.append(palavra.charAt(posicao));
}
String string = texto.toString();
System.out.println(string);
if (imprime(palavra, caracteres + 1)) {
System.out.println(string);
}
return true;
}
}
Desculpe, fiz na correria e acabei me desviando do assunto da postagem.