elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Ayuda
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda  (Leído 1,642 veces)
padiuwu

Desconectado Desconectado

Mensajes: 34


Ver Perfil
Ayuda
« en: 6 Marzo 2019, 18:31 pm »

Como le hago para que no me imprima la ultima coma?
Código:
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,


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Ayuda
« Respuesta #1 en: 6 Marzo 2019, 21:37 pm »

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

Por:
Código
  1. if (i > 0) {
  2.    System.out.print(", ");
  3. }
  4. System.out.print(array[i]);
  5.  

Es una forma de hacerlo.


En línea

spcruzaley

Desconectado Desconectado

Mensajes: 16


Ver Perfil
Re: Ayuda
« Respuesta #2 en: 8 Marzo 2019, 20:54 pm »

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

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
  1. public static void main(String[] args) {
  2.        int[] array = {32, 54, 78, 96, 12};
  3.  
  4.        for (int i = 0;i<array.length-1;i++) {
  5.            intercambia(array[i], array[i+1]);
  6.        }
  7.        System.out.println(Arrays.toString(array));
  8.    }
  9.  
  10.    public static int[] intercambia(int a, int b) {
  11.        return new int[]{b,a};
  12.    }
  13. }
  14.  

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


Saludos.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines