Hola,
juraría que había visto este mismo post hace unos días y desapareció de pronto. En fin, lo acabo de retocar, ahora ya funciona perfectamente:
public static void mostrarMatriz(Integer[][] array) {
System.out.println("Sacando la matriz:\n");
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
System.out.println(array[i][j] + " ");
}
System.out.println(); // salto de linea
}
}
public static void main(String[] args) {
/*
* Pedir al usuario numeros por consola hasta llenar una matriz de 4x4
* Cambiar los numeros de las diagonales por 1 Sacar por consola las 2
* matrices
*/
Integer array[][] = new Integer[4][4];
Scanner sc = new Scanner(System.in);
// Llenamos la matriz
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
System.out.println("Introduzca el valor " + i + " - " + j + ":");
array[i][j] = sc.nextInt();
}
}
sc.close();
// Mostrar la matriz introducida
mostrarMatriz(array);
// Cambiar las diagonales de la matriz a 1
array[0][0] = 1;
array[1][1] = 1;
array[2][2] = 1;
array[3][3] = 1;
mostrarMatriz(array);
}
Comentarios:
Antes del main he creado un método auxiliar en privado para que sea llamado cuando se imprima la matriz. No me gusta cómo la imprime la consola, esto es, como una tira vertical de números, a ver si encuentro otra manera, porque con las que he dado solamente sirven para una cadena de String.
Sobre el código poco hay que hablar, se hace lo que pides, esto es, preguntarle al usuario por consola los 16 números para la matriz de 4x4 que vamos almacenando en el array bidimensional. Luego, cambiamos las diagonales y volvemos a mostrar la matriz ya cambiada.