es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo escribir un bucle for para codificar y decodificar en Java? El programa solo codifica una letra cuando ingreso una cadena. Lección de nivel universitario 1.

Debo escribir un programa de codificación y decodificación en una clase y luego usarlo en main. El programa necesita que la posición de cada letra aumente en 2.

Cuando ejecuto el programa, el problema es que cuando ingreso una cadena (como cookie), solo se codifica la última letra. Aquí hay una captura de pantalla del programa en ejecución.

¿Cuál es el problema con mi programa?

Gracias.

La lección es muy básica y la tarea prohibe que los estudiantes importen cualquier otro método java como base64. Solo use el código inicial.

El código lo pondré aquí también.

public class SimpleCipher {

/*
* comentarios aquí para proporcionar una visión general del método
*/
public String encode(String text) {
String result = “”;

char[] chars = text.toCharArray();
int length = chars.length;



for (char x: chars) {

    x+=2;

     result += Character.toString(x);

}


// ToDo
// convertir texto en matriz de caracteres
// invertir la matriz usando el método proporcionado (ver abajo)
// recorrer la matriz sumando 2 a cada elemento
// converir la matriz de caracteres de nuevo a una cadena y llamar result
// devolver la cadena resultante.
return result;

}
}

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El problema con el programa actual es que en el bucle “for”, en lugar de añadir cada carácter codificado a la cadena de resultado, el programa está sobrescribiendo la cadena de resultado con cada iteración. Por lo tanto, sólo el último carácter codificado se devuelve como resultado final.

    Para solucionar este problema, el programa debería utilizar el operador “+=” en lugar del operador “=” al añadir cada carácter codificado a la cadena de resultado. Esto asegurará que cada carácter codificado se añada a la cadena de resultado final en lugar de sobrescribirla.

    Así es como debería verse el método “encode” actualizado:

    public String encode(String text) {
        String result = "";
        char[] chars = text.toCharArray();
    
        for (char x: chars) {
            x += 2;
            result += Character.toString(x);
        }
    
        return result;
    }
    

    Con esta actualización, la cadena completa se codificará correctamente y se devolverá como resultado final.

Comments are closed.