Informática, perguntado por xremix20, 1 ano atrás

Boas estou com uma dúvida neste exercício eu quero que isto fique igual ao da figura mas sempre que mexo meto length()-1 ou +1 ele não bate certo já tentei de várias formas eu queria que ficasse sem espaços igual ao da figura.
o código é este: deixo o meu output e o da figura como devia ficar.
public static void arrayPalavras(){
String text[]={"O","teste","de","programação","é","muito","facil!"};
System.out.print("*");
for (int i = 0; i < text.length; i++) {
for (int k = 0; k < text[i].length(); k++) {
System.out.print("-");
}
System.out.print("-");
}
System.out.print("*");
System.out.println("");

for (int i = 0; i < text.length; i++) {
System.out.print("|"+text[i]);
if(i==text[i].length())
System.out.print("");
}

System.out.println("|");
System.out.print("*");

for (int i = 0; i < text.length; i++) {
for (int j = 0; j < text[i].length(); j++) {
System.out.print("-");
}
System.out.print("-");
}
System.out.print("*");
}

public static void main(String[] args) {
arrayPalavras();
}
}

Anexos:

Soluções para a tarefa

Respondido por bokomoko
1
o problema é a linha que começa com * e termina com *

Observe que a linha com asterisco é da seguinte forma
um asterisco *
tracinhos para cada letra da palavra + um tracinho desde que não seja a última palavra 
um asterisco

Então você tem que testar se a palavra impressa é a última. Se for, você não imprime tracinho e sim deixa que o * será impresso depois

Eis o programa correto
https://repl.it/@bokomoko/httpsbrainlycombrtarefa13276213

Respondido por 100breno100p2q949
1
for (int i = 1; i < text.length; i++) {      
for (int k = 0; k < text[i].length(); k++) {        
System.out.print("-");      
}     
System.out.print("-");   
}    
System.out.print("-");   
System.out.print("*");
...

Se fizer dessa forma, o programa imprime um "-" a menos. Daí é só colocar um depois do laço.

https://repl.it/@BrenoSilva2/R1

100breno100p2q949: for (int i = 1; i < text.length; i++) { for (int k = 0; k < text[i].length(); k++) { System.out.print("-"); } System.out.print("-"); } System.out.print("-"); System.out.print("*");
100breno100p2q949: AFF
100breno100p2q949: for (int i = 1; i < text.length; i++) { for (int k = 0; k < text[i].length(); k++) { System.out.print("-"); } System.out.print("-"); } System.out.print("-"); System.out.print("*");
100breno100p2q949: DESISTO DE AJEITAR O CÓDIGO
bokomoko: Tenta usar o repl.it. Posta lá outro código para nós vermos.
Perguntas interessantes