Artículos
Java

Rellenar una matriz con una cadena en Java

06/Oct/2021

Una de las cosas que nos habéis pedido en los comentarios es ¿cómo puedo Rellenar una matriz con una cadena en Java? Es decir, si tengo una cadena de texto en plan «Soy una cadena de texto», esta, nos sirva para rellenar a una matriz por columnas.

De esta manera, si tenemos una matriz de 3 filas, la palabra «Soy» iría en la primera columna, es decir en las posiciones (0,0), (1,0) y (2,0), el siguiente tramo de 3 caracteres sería » un», ya que hay que tener en cuenta el espacio en blanco al ser un carácter, e iría en las posiciones (0,1), (1,2) y (2,1). Así sucesivamente hasta el final de la frase.

Queda mejor explicado gráficamente de cómo quedaría la frase en la matriz de la siguiente forma:

|s   a a n d t t|
|o u   d a e e o|
|y n c e     x .|

Pues vamos a resolver el problema con Java. Lo primero sera definir la frase con la que queramos rellenar la matriz. Esto será lo más sencillo :-D

String texto = "Soy una cadena de texto.";

Ahora tendremos que definir la matriz en Java. Esto ya se complica. ¿De qué tamaño la definimos? Lo que fijaremos será el número de filas a 3. Aunque te lo puedes ajustar al número de filas que quieras. Para calcular las columnas lo que haremos será dividir el tamaño de la cadena, que nos lo da el método .length() entre 3. Y del resultado nos quedamos su número mayor, esto lo conseguimos apoyándonos en el método Math.ceil().

Así nos queda la creación de la matriz en Java:

int tamanio = texto.length();
int columnas = (int)Math.ceil((float)tamanio/3);
char[][] matriz = new char[3][columnas];

Ahora vamos a rellenar el contenido de la matriz con la cadena de texto. Para ello recorremos la matriz carácter a carácter mediante un bucle for.

for (int x=0;x<tamanio;x++) {}

Para saber la fila a la que tienes que asignar cada carácter lo que se hace es dividirlo entre 3 para saber la columna y calcular el resto de la posición entre 3 para saber la columna. Así el carácter que esté en la posición 5 estará en la celda (1,2) que será correspondiente al 5/3=1 y 5%3 = 2.

De esta forma el código nos quedará de la siguiente forma:

int columna = 0;
int fila = 0;

for (int x=0;x<tamanio;x++) {
  columna = x/3;
  fila = x%3;
  matriz[fila][columna] = texto.charAt(x);            
}

Ya solo nos quedará recorrer la matriz para ver el resultado.

for (int x=0; x < matriz.length; x++) {
    System.out.print("|");
    for (int y=0; y < matriz[x].length; y++) {
        System.out.print (matriz[x][y]);
        if (y!=matriz[x].length-1) System.out.print("\t");
    }
    System.out.println("|");
}

Y así habremos conseguido rellenar una matriz con una cadena en Java.

Código Fuente

Descárgate el código fuente de Rellenar una matriz con una cadena en Java
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star

Vídeos sobre Java

Disfruta también de nuestros artículos sobre Java en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test Java

¿Te atreves a probar tus habilidades y conocimiento en Java con nuestro test?

Test Java
Suscribir
Notificar de
guest
0 Comentarios
Opiniones integradas
Ver todos los comentarios