Java - Como posicionar elementos en una matriz

   
Vista:

Como posicionar elementos en una matriz

Publicado por Josue (4 intervenciones) el 13/12/2014 11:48:44
Buenas me gustaría saber como puedo hacer para darle la posición a un elemento en una matriz ... tengo el arreglo principal que es de 10x10 y otro arreglo que me guarda las palabras, al usuario le pido que me ingrese las palabras pero como hago para darle la posicion en la matriz de 10x10 ?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Como posicionar elementos en una matriz

Publicado por Andrés (231 intervenciones) el 13/12/2014 22:38:22
Entonces, tienes una matriz de 10x10.

Los indices en java inician en 0 así que los indices van del 0 al 9.

¿Cómo direccionas una casilla en la matriz (es decir el elemento ij)?

i es el renglón, para este caso i va de 0 al 9
j es la columna, aplica el punto anterior respecto al recorrido de j

asi que si la matriz esta referenciada por digamos a, a[0][0] es el elemento de la esquina superior izquierdo.

si dices palabras, supongo que la matriz es de caracateres o strings(desperdicio ya que solo guadan un caracter),

supon que llega la linea "Hello world!" y la referencias mediante foo, es decir String foo="Hello world!";

ahora, para el renglon 0,

recorres la cadena foo

i=0 recorre las filas
la matriz esta referenciada por a

//obtener los caracateres en la cadena
char[] caracteres = foo.toChaArray();

//ahora, meter estos caracteres en la primera fila de la matriz
//si no tuvieras la limitante en el numero de columnas de la matriz, podrias hacer simplemente
//a[i]=caracateres //recuerda que i es 0
//pero volviendo a la realidad tienes restriccion en las columnas, solo 10 caracateres

Pueden pasar tres cosas:

1.- la cadena tiene más elementos
2.- la cadena tiene menos elementos
3.- la cadena tiene 10 elementos

poorque es importante, porque si direccionas un arreglo fuera de sus indices, ocurre una unchecked exeception

podemos simplificar caso 1 y 3 usando el metodo substring de la clase String


Entonces, teniamos una cadena foo="Hello World!"

reasignamos foo= foo.substring(0,10), ahora foo="Hello Worl";

para el caso 2 sólo ciclas mediante el arreglo de caractares, no mediante la longitud de las filas de la matriz

Sumarizando:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
String foo = "Hello world";
char[] caracteres  = null;
 
if(foo.length()>=10) {
 
            foo=foo.substring(0,10);
            caracateres = foo.toCharArray();
 
           //ahora escribimos en el primer renglon de la matriz recuerda que i vale 0
         for(k=0;k<10;k++) {
               a[i][k]=caracateres[k];
         }
        //        y ya esta ;)
 
}else {
           //o sea la cadena es más corta
          caracateres = foo.toCharArray();
           for(k=0;k<caracateres.length;k++) {
               a[i][k]=caracateres[k];
         }
        //        y ya esta ;)
}

El código anterior lo puedes simplificar:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
String foo = "Hello world";
char[] caracteres  = null;
int longitud = 10;
 
if(foo.length()>=longitud) {
 
            foo=foo.substring(0,longitud);
 
}else {
          longitud=foo.lentgh();
}
 
 
caracateres = foo.toCharArray();
 
 //ahora escribimos en el primer renglon de la matriz recuerda que i vale 0
 for(k=0;k<longitud;k++) {
               a[i][k]=caracateres[k];
         }
        //        y ya esta ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar