feed twitter facebook LinkedIn facebook

Java » Cargar una matriz por teclado en Java

abril 1, 2011 por Víctor Cuervo 10 Comentarios Imprimir Imprimir

En el ejemplo Crear una matriz en Java veíamos como se define una matriz de números en Java. En ese ejemplo rellenábamos los valores de la matriz directamente en la instanciación de la matriz.

  1. int [][] matriz = {{2,4,4},{6,6,9},{8,10,12}};

Una de las preguntas que nos presentabais ante ese artículo es cómo poder cargar una matriz por teclado en Java. Es decir, que el usuario vaya introduciendo los valores uno a uno.

Para este caso lo primero que haremos será instanciar la matriz vacía. Por ejemplo una matriz de 3x3:

  1. int matriz[][] = new int[3][3];

Ahora vamos a rellenarla. Para ello vamos a utilizar la misma técnica que si la quisiésemos recorrer. Es decir, dos bucles anidados que iteraran por el número de elementos que tenga la matriz en cada índice. El tamaño de la matriz que nos sirve para definir el bucle lo conseguimos mediante la propiedad .length. Algo así:

  1. for (int x=0; x < matriz.length; x++) {
  2. for (int y=0; y < matriz[x].length; y++) {...}
  3. }

Si bien, en cada una de las iteraciones, vamos a rellenar el elemento en el que estemos. Para leer los datos de la consola utilizaremos la clase Scanner. La clase Scanner la instanciaremos al principio del programa:

  1. Scanner consola = new Scanner(System.in);

En cada ciclo del bucle utilizamos el método .nextInt() de la clase Scanner para leer un entero de teclado. Y directamente se lo asignamos a la matriz.

  1. for (int x=0; x < matriz.length; x++) {
  2. for (int y=0; y < matriz[x].length; y++) {
  3. System.out.println("Introduzca el elemento [" + x + "," + y + "]");
  4. matriz[x][y] = consola.nextInt();
  5. }
  6. }

Ya solo nos quedará mostrar el contenido de la matriz para validar que coincide con el insertado:

  1. for (int x=0; x < matriz.length; x++) {
  2. for (int y=0; y < matriz[x].length; y++) {
  3. System.out.println ("[" + x + "," + y + "] = " + matriz[x][y]);
  4. }
  5. }
Descargar el Codigo
Descargar el código
Error en el Codigo
Error en el código
Foro sobre Java
Foro sobre Java
tags: , , , , , ,

Artículos relacionados:

10 comentarios »

RSS feed para los comentarios de esta entrada. TrackBack URI

  1. Virginia
    abril 29, 2011 #

    Buenoooo… esta misma tarde pruebo esta clase!!

    Hace nada estuve peleandome con el read() para ir leyendo caracteres.

    Lo tenía en un bucle en el que antes iba imprimiendo por pantalla con println y se saltaba algunos read(). Al final tuve que utilizar un método skip(), que tampoco entiendo mucho pero he leído que es parecido a la limpieza de buffer de c…

    En fin, probaré con Scanner, gracias!

  2. Víctor Cuervo
    julio 4, 2011 #

    @Virginia,

    Me alegro mucho que te haya orientado. :-D

    La verdad es que Scanner es muy útil. Échale un vistazo al siguiente artículo:
    http://lineadecodigo.com/java/lectura-de-datos-en-java-con-scanner/

  3. prox
    agosto 26, 2011 #

    disculpa me parecio muy bueno el articulo pero quisiera saber como insertar los valores desde un input y no utilisando scanner, si me pudieras ayudar estaria de lujo gracias!!!!

  4. Art
    octubre 21, 2011 #

    Oye gracias me ha ayudado bastante, pero me gustaria saber como hacer q se imprima la matriz completa y no uno por uno

  5. Juan
    noviembre 30, 2012 #

    Me gustaria saber como hacer algo parecido pero en vez de ingresar un valor y asignarselo a una casilla en la matriz,quiero que con un valor ya definido asignarselo a cierta casilla de la matriz la cual es pedida al usuario por consola.

  6. Víctor Cuervo
    diciembre 12, 2012 #

    @juan,

    ¿dónde está el valor de la posición de la matriz en la cual almacenarás el dato?

    Saludos.

  7. Víctor Cuervo
    diciembre 12, 2012 #

    @Art,

    Te refieres imprimirla como si fuese una matriz matemática?

    Saludos.

  8. luis
    septiembre 21, 2013 #

    buenas noches, estoy iniciando mis estudios en la programacion java y me estan pidiendo realizar un program con lassiguientes especificaciones y aun no he podido saber como iniciar con mi trabajo seria de mucha ayuda si alguin me indica como debo empezar y ya lo demas sera mas facil gracias

    1.El programa debe tener la capacidad de recibir una matriz
    ingresada por el usuario a través de una consola, el usuario
    también puede definir el tamaño de la matriz.
    2. El programa debe estar en capacidad de sumar 2 matrices
    3. El programa debe estar en capacidad de multiplicar 2 matrices
    4. El programa debe estar en capacidad de transponer 1 matriz
    5. El programa debe estar en capacidad de restar 2 matrices
    6. El programa debe estar en capacidad de multiplicar 1 matriz por
    un número real
    7. El programa debe estar en capacidad de calcular la inversa de
    una matriz
    8. El programa debe estar en capacidad de mostrar por pantalla las
    matrices guardadas en memoria
    9. El programa debe estar en capacidad de almacenar las matrices
    en un archivo de textos para poder ser precargadas por el usuario

  9. alfredo
    octubre 7, 2013 #

    disculpen, tengo un problema y les pido de la manera mas atenta su ayuda, tengo que realizar el código que resuelva el método simplex, pero aun no tengo los conocimientos necesarios, debe de ser muy sencillo por que apenas empece a estudiar la ingeniería. espero contar con su respuesta, se los agradeceré. gracias por su atención.

Deja un comentario

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*