Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Rellenar array con split

Estas en el tema de Rellenar array con split en el foro de Java en Foros del Web. Hola, tengo que rellenar un array con un tamaño de 10 y tengo que rellenarlo a partir de números introducidos por teclado y que van ...
  #1 (permalink)  
Antiguo 11/03/2013, 09:27
 
Fecha de Ingreso: diciembre-2007
Mensajes: 121
Antigüedad: 16 años, 4 meses
Puntos: 0
Rellenar array con split

Hola, tengo que rellenar un array con un tamaño de 10 y tengo que rellenarlo a partir de números introducidos por teclado y que van separados por comas.

El problema está en que en vez de meter como mucho 10 numero mete más.

¿Podeis ayudarme? Pongo el código a continuación. Saludos.

Código:
public class Rellenar {
   

    
    public  static void main(String[] args)throws IOException  {
        
      String numero;
    
      BufferedReader entrada = new BufferedReader(new InputStreamReader(System.in));
      numero = entrada.readLine();
      String[] vector = new String[10];
      vector = numero.split(",");
        for (int i = 0; i < vector.length; i++) {
            System.out.println(vector[i]);
               
        }
    }
}
  #2 (permalink)  
Antiguo 11/03/2013, 09:49
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Rellenar array con split

Vector es un tipo de arreglo dinámico que cada vez que se incrementa de tamaño lo hace de 5 en 5 unidades.

¿Qué datos estás metiendo y qué te devuelve el System.out?
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #3 (permalink)  
Antiguo 11/03/2013, 09:49
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: Rellenar array con split

Si metes más de 10, tendrás más de diez.

String[] vector = new String[10];

Esto no vale de nada, estás creando un array de 10 vacío, pero después lo sustituyes con el array que crea split, que tendrá tantos elementos como comas+1 hayas puesto.

vector = numero.split(",");
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #4 (permalink)  
Antiguo 11/03/2013, 10:03
Avatar de rgf1987  
Fecha de Ingreso: diciembre-2012
Ubicación: Asturias
Mensajes: 269
Antigüedad: 11 años, 3 meses
Puntos: 22
Respuesta: Rellenar array con split

El problema está en que .split() redefine el array vector con otro tamaño, es decir, imaginate que tu haces


String[] vector = new String[10];

luego metes por pantalla 1,2,3,4,5,6,7,8,9,10,11,12,13,14

al hacer vector = numero.split(",");

es como si hicieses vector = new String[14] porque se generan 14 elementos

En resumen, tienes que añadir una condición al for "i<10" para que solo lea 10 elementos, el código quedaría así:

Código JAVA:
Ver original
  1. public static void main(String[] args) throws IOException {
  2.         String numero;
  3.        
  4.         BufferedReader entrada = new BufferedReader(new InputStreamReader(System.in));              
  5.        
  6.         numero= entrada.readLine();        
  7.         String[] vector = numero.split(",");
  8.        
  9.         for( int i = 0 ;i < vector.length && i<10; i++){
  10.             System.out.println(vector[i]);
  11.         }      
  12.            
  13.        
  14.     }



Un saludo!!
  #5 (permalink)  
Antiguo 11/03/2013, 10:04
Avatar de rgf1987  
Fecha de Ingreso: diciembre-2012
Ubicación: Asturias
Mensajes: 269
Antigüedad: 11 años, 3 meses
Puntos: 22
Respuesta: Rellenar array con split

Y esto me pasa por ir al baño volver y seguir escribiendo, que ya te contesto la gente jajaj
  #6 (permalink)  
Antiguo 11/03/2013, 11:21
 
Fecha de Ingreso: diciembre-2007
Mensajes: 121
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Rellenar array con split

Cita:
Iniciado por rgf1987 Ver Mensaje
Y esto me pasa por ir al baño volver y seguir escribiendo, que ya te contesto la gente jajaj
Jijiji, a mi novio le pasa lo mismo, se va al baño y se eterniza, voy a tener que quitar el revistero y prohibirle que se lleve el tablet al baño.

Muchas gracias a todos, ya me ha quedado claro.

Saludos a todos.

Etiquetas: rellenar, split, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:30.