Ayuda

Iniciado por padiuwu, 6 Marzo 2019, 18:31 PM

0 Miembros y 1 Visitante están viendo este tema.

padiuwu

Como le hago para que no me imprima la ultima coma?
public class Programa_arreglo {

    public static void main(String[] args) {
        int ultimo;
        int[] array = {32, 54, 78, 96, 12};
   
        ultimo = array[4];
       
        System.out.print("Arreglo 1: ");
        for (int i = 0; i < 5; i++) {
            System.out.print(array[i]+", ");
        }
        for (int i = 3; i >= 0; i--) {
            array[i + 1] = array[i];
        }
        array[0] = ultimo;

        System.out.print("\nArreglo 2: ");
        for (int i = 0; i < 5; i++) {
            System.out.print(array[i]+", ");
        }
    }

}


Me debe de imprimir así:
Arreglo 1: 32, 54, 78, 96, 12
Arreglo 2: 12, 32, 54, 78, 96


Y me imprime isa:
Arreglo 1: 32, 54, 78, 96, 12,
Arreglo 2: 12, 32, 54, 78, 96,

ivancea96

Puedes cambiar el:
Código (cpp) [Seleccionar]
System.out.print(array[i]+", ");

Por:
Código (cpp) [Seleccionar]

if (i > 0) {
    System.out.print(", ");
}
System.out.print(array[i]);


Es una forma de hacerlo.

spcruzaley

Como bien dice ivancea96 lo puedes hacer de esa manera.

O bien, siguiendo la forma en la cual lo estas haciendo, igual puede quedar asi:

Código (java) [Seleccionar]

System.out.print("\nArreglo 2: ");
        for (int i = 0; i < 4; i++) {  //En lugar de ponerlo a 5, lo pones a 4
            System.out.print(array[i]+", ");
        }
        System.out.print(array[5]); //Y aqui imprimes el ultimo


Sin embargo podrias darle un enfoque diferente, piensa en esto, si el arreglo cambia de longitud, tendras que volver a escribir tu codigo para "adaptarlo" a la nueva longitud.

Quizas podriamos hacer esto, un metodo exclusivo que reciba  2 numeros y retorne un arreglo con estos 2 numeros intercambiados.

Despues lo mandas a llamar dentro de un for el cual recorrera el arreglo original hasta n-1, algo como esto:

Código (java) [Seleccionar]

public static void main(String[] args) {
        int[] array = {32, 54, 78, 96, 12};
       
        for (int i = 0;i<array.length-1;i++) {
            intercambia(array[i], array[i+1]);
        }
        System.out.println(Arrays.toString(array));
    }

    public static int[] intercambia(int a, int b) {
        return new int[]{b,a};
    }
}


Puede ser que exista una forma mas optimizada, en la programacion todo puede pasar.


Saludos.