Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

224
Visualizações
Cómo ejecutar un bloque de código para cada argumento de línea de comando dado, pero imprimirlo en una línea

He estado tratando de lograr esto durante una semana sin éxito. Me gustaría que el programa imprima los argumentos de la línea de comando entre paréntesis como se muestra a continuación (en una línea):

 ---------- +++++++++++ --------- ++++++++ - orange - + apricot + - grape - + kiwi + ---------- +++++++++++ --------- ++++++++
  • Argumentos de línea de comando: naranja, albaricoque, uva, kiwi
  • los corchetes cambian de - para argumentos con índices pares y + para argumentos con índices impares

Pero mi código imprime:

 ---------- - orange - ---------- +++++++++++ + apricot + +++++++++++ --------- - grape - --------- ++++++++ + kiwi + ++++++++

Mi código:

 public class A2 { public static void main(String[] args) { for (int i = 0; i < args.length; i++) { //1.line if (i % 2 == 0) { System.out.println("-".repeat(args[i].length()+4)); } else { System.out.println("+".repeat(args[i].length()+4)); } //2.line if (i % 2 == 0) { System.out.printf("- %s -\n", args[i]); } else { System.out.printf("+ %s +\n", args[i]); } //3.line if (i % 2 == 0) { System.out.println("-".repeat(args[i].length()+4)); } else { System.out.println("+".repeat(args[i].length()+4)); } } } }

Probé diferentes métodos de impresión, como System.out.print() y me deshice de \n , pero solo estropea los corchetes alrededor de las palabras, así que creo que tengo que hacer algo en el nivel del bucle for , pero soy un completo Java novato y estoy perdido. Pensé en agregar otra variable para resolver el problema, pero no puedo entender cómo hacerlo en este caso y si incluso resolverá el problema.

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Debe tener un ciclo for separado for cada línea que desee imprimir (en lugar de un ciclo for único que intente imprimir las tres líneas).

Tenga en cuenta que, dado que la primera y la última línea son idénticas, podría reemplazar la primera y la última for bucles con una llamada a un método que imprima la línea.

 public class A2 { private static void printLine(String[] args) { for (int i = 0; i < args.length; i++) { if (i % 2 == 0) { System.out.print("-".repeat(args[i].length() + 4)); System.out.print(" "); } else { System.out.print("+".repeat(args[i].length() + 4)); System.out.print(" "); } } System.out.println(); } public static void main(String[] args) { // 1.line printLine(args); // 2.line for (int i = 0; i < args.length; i++) { if (i % 2 == 0) { System.out.printf("- %s -", args[i]); System.out.print(" "); } else { System.out.printf("+ %s +", args[i]); System.out.print(" "); } } System.out.println(); // 3.line printLine(args); } }

El resultado que obtengo para sus argumentos de muestra es:

 ---------- +++++++++++ --------- ++++++++ - orange - + apricot + - grape - + kiwi + ---------- +++++++++++ --------- ++++++++
over 4 years ago · Santiago Trujillo Relatório

0

Aquí está mi solución. El enfoque que desea adoptar con esto es ir línea por línea, ya que con Java no puede volver a la línea anterior sin bibliotecas de terceros.

 public static void main(String[] args) { if(args.length > 0) { System.out.println(makeBorderLine(args)); System.out.println(makeFruitLine(args)); System.out.println(makeBorderLine(args)); } } public static String makeFruitLine(String[] args) { String fruitLine = ""; for(int i = 0; i < args.length; i++) { if(i % 2 == 0) { fruitLine += "- " + args[i] + " - "; } else { fruitLine += "+ " + args[i] + " + "; } } return fruitLine; } public static String makeBorderLine(String[] args) { String line1 = "-"; String line2 = "+"; String line = ""; for(int i = 0; i < args.length; i++) { if(i % 2 == 0) { line += line1.repeat(args[i].length() + 4) + " "; } else { line += line2.repeat(args[i].length() + 4) + " "; } } return line; }
over 4 years ago · Santiago Trujillo Relatório

0

Gracias a todos los que me dieron algunas pistas o soluciones para estudiar.

Al final entendí cuál era el problema de mi código y opté por una solución que quizás no sea la más óptima, pero es la que yo, un principiante completo, entiendo más en este momento y también una que cubre solo las cosas que estaban aprendiendo hasta ahora.

Este fue mi código:

 public class A2 { public static void main(String[] args){ //1.line for (int i = 0; i < args.length; i++){ if (i % 2 == 0) { System.out.print("-".repeat(args[i].length()+4) + " "); } else { System.out.print("+".repeat(args[i].length()+4) + " "); } } System.out.println(); //2.line for (int i = 0; i < args.length; i++){ if (i % 2 == 0) { System.out.printf("- %s -", args[i]); } else { System.out.printf("+ %s +", args[i]); } } System.out.println(); //3.line for (int i = 0; i < args.length; i++){ if (i % 2 == 0) { System.out.print("-".repeat(args[i].length()+4) + " "); } else { System.out.print("+".repeat(args[i].length()+4) + " "); } } System.out.println(); } } ´´´
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda