Java - Recorrer matriz y sustituir [Ejemplo de sopa de letras] [JAVA]

 
Vista:
sin imagen de perfil

Recorrer matriz y sustituir [Ejemplo de sopa de letras] [JAVA]

Publicado por Tony (2 intervenciones) el 01/05/2017 01:00:43
Hola buenas noches, primero que nada me presento, soy Tony estudiante de formación superior de desarrollo de aplicaciones web.

Tengo un pequeño problema, yo creo bastante simple pero que mi cabeza por algún motivo no procesa. El problema es el siguiente, estoy haciendo un ejercicio para hacer una sopa de letras, no funcional, me explico, no se va a acceder a ningún fichero diccionario ni nada parecido, simplemente interactuaremos con los resultados generados por nuestro propio código. Y realmente estoy atascado en el momento de buscar y sustituir valores en la matriz.
1
2
3
4
5
6
7
8
9
10
11
12
public static /*char[][]*/ int sustituir(char[][] m, String s) {
        int cont = 0;
        for (int i = 0; i < m.length; i++) {
            for (int j = 0; j < m[i].length; j++) {
                if(s.charAt(i)==m[i][j]){
                    cont++; //esto es simplemente para ver si llega a interpretar la condición
                }
            }
        }
        return cont;
    }
}
Esa función realmente debería devolver un vector de caracteres con los caracteres que le pase en el string sustituidos 1 única vez en toda la matriz. (Sí, el código aun está en ropa interior, pero no logro empezar bien...).

El problema creo que está en el condicional, ya que si le paso una cadena con menor longitud que el vector saltará un OutOfBoundsException. No sé solucionarlo...

Desde aquí saluda un novato estudiando... Muchas gracias por la ayuda!

PD: Me disculpo si este no es el lugar correcto para este post, la verdad es la primera vez que ingreso y pregunto algo, no soy muy forero...
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
sin imagen de perfil

Recorrer matriz y sustituir [Ejemplo de sopa de letras] [JAVA]

Publicado por Tony (2 intervenciones) el 01/05/2017 02:07:01
Hola, he conseguido solucionar el OutOfBoundsException con:
1
2
3
4
5
6
7
8
9
10
11
12
public static char[][] reemplazar(String s, char[][] m) {
        for (int a = 0; a < s.length(); a++) {
            for (int i = 0; i < m.length; i++) {
                for (int j = 0; j < m[i].length; j++) {
                    if (s.charAt(a) == m[i][j]) {
                        m[i][j]='*';
                    }
                }
            }
        }
        return m;
    }
Pero no me sustituye, cual podría ser mi solución? Gracias!
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
sin imagen de perfil
Val: 349
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Recorrer matriz y sustituir [Ejemplo de sopa de letras] [JAVA]

Publicado por Andrés (340 intervenciones) el 01/05/2017 05:40:51
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public static void sustituirCaracter(char c, char[][] m) {
 
        for (int i = 0; i < m.length; i++) {
 
            for (int j = 0; j < m[i].length; j++) {
 
                if (c == m[i][j]) {
                    m[i][j] = '*';
                }
 
            }
 
        }
 
    }
 
    public static void reemplazar(String s, char[][] m) {
 
        for (int a = 0; a < s.length(); a++) {
            sustituirCaracter(s.charAt(a),m);
        }
 
    }
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