Dudas de Programacion » Java » Java Básico

(JAVA)Un metodo no me coje el array que viene de un Scanner

(2 posts)
  • Started 5 months ago by lopera607
  • Latest reply from lineadecodigo
  1. lopera607
    Member

    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.

     
    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]);
     
    		}
     
    	}
    }
     
    Posted 5 months ago #


  2. lineadecodigo
    Member

    @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]))
    Salu2,
    Linea de Código.
    http://lineadecodigo.com
    Posted 5 months ago #

Reply

You must log in to post.

1,070 posts in 437 topics over 40 months by 388 of 892 members. Latest: lalala, nijh1, jasu

Acerca de...

Dudas de Programación es una Web, dentro del proyecto aulambra.com que nace con la idea de propocionar un foro de consultas sobre diferentes temas de programación. Orientado a ayudar a los internautas hispano-hablantes en Internet.

Ir al Blog de Linea de Código

Otras Webs