0 votos
por (120 puntos) en Java
Buenas mi duda es que mi metodo "codificar", no me coje el array "FraseParaCifrar", que viene de un "Scanner", en cambio si se lo paso manualmente si me dice las posiciones la que se encuentra respecto al array "abecedario", el array comentado llamado "Cifrar", se lo paso al metodo "codificar", en vez de "FraseParaCifrar" y si me da las posiciones

{h,o} me da el 7,14.

Gracias a todos.

<pre lang='java'>
import java.util.*;

public class codifica {

    /**
     * @param args
     */
    public static void main(String[] args) {
        String Frase = "";
        String Frase1 = LeerMatriz(Frase);
        String FraseParaCifrar[];
        FraseParaCifrar = new String [Frase1.length()];

        RellenaMatriz(FraseParaCifrar, Frase1);

        //String Cifrar[] = {"h","o"};
        String abecedario[] = {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"};
        codificar(FraseParaCifrar, abecedario);
    }

    private static void RellenaMatriz(String[] fraseParaCifrar, String frase) {

        for (int i = 0; i < frase.length();i++ ){

            char letraChar = frase.charAt(i);
            String letraString = Character.toString(letraChar);
            fraseParaCifrar[i] = letraString;

        }

    }
private static String LeerMatriz(String Frase) {

        Scanner sc = new Scanner(System.in);
        System.out.println("Introduce frase para cifrar: ");
        Frase = sc.nextLine();

return Frase;
}

    private static void codificar(String[] FraseParaCifrar, String[] abecedario) {

        int posicion = 0;
        int resultado[];
        resultado = new int [FraseParaCifrar.length];
        for (int i = 0; i < abecedario.length; i++){

            for (int o = 0;o < FraseParaCifrar.length; o++){

                if (abecedario[i] == FraseParaCifrar[o]){
                    posicion = i;
                    resultado[o]= posicion;

                }

            }

        }for(int y = 0; y < resultado.length;y++){
            System.out.println(resultado[y]);

        }

    }
}

1 Respuesta

0 votos
por (4.3k puntos)
@lopera607,

El problema lo tienes en las comparaciones de las cadenas. Para comparar cadenas no hay que utilizar el operador ==. Lo que hay que utilizar es el método .equals()

Tienes que cambiar el código:

if (abecedario[i] == FraseParaCifrar[o])
Por el siguiente código:

if (abecedario[i].equals(FraseParaCifrar[o]))

Preguntas relacionadas

0 votos
1 respuesta
preguntado por Whoviano (20 puntos) Ene 28, 2016 en Java
0 votos
8 respuestas
preguntado por sakura (160 puntos) Ene 28, 2016 en Java
Bienvenido a Dudas de Programación, donde puedes hacer preguntas y recibir respuestas sobre los problemas más frecuentes de los lenguajes de programación, frameworks de desarrollo y bases de datos que utilices. Foro de Línea de Código

Categorías

...