¿Cómo arreglar una mala decodificación básica?

Cuando uso este método simple de codificación / decodificación, tengo un pequeño error. Cuando la entrada del usuario a través del escáner es como:
Cadena: "Hola, mi nombre es Michael"
Codificación: "Pmttw (u? (Vium (q {(Uqkpimt"
Decodificación: "Hola, el nombre m7 es Michael"

su decodificado como 'y' ahora es '7'

public static String basicEncode(String key) {
String result = "";
int lon = key.length();
char d;
for(int i = 0; i < lon; i++) {
    d = key.charAt(i);
    d += 10;
    result += d;
}

return result;
}

public static String basicDecode(String key) {
    String result = "";
    int lon = key.length();
    char d;
    for(int i = 0; i < lon; i++) {
        d = key.charAt(i);
        d -= 10;
        result += d;
    }

    return result;
}
Respuesta 1

A su código le falta un 10 en basicDecode. Aparte de esto, no veo su problema.

  public static void main(String args[]) {
    String in = "Hello my name is Michael";
    String encoded = basicEncode(in);
    String decoded = basicDecode(encoded);

    System.out.println(in);
    System.out.println(encoded);
    System.out.println(decoded);
  }

  public static String basicEncode(String key) {
    String result = "";
    int lon = key.length();
    char d;
    for (int i = 0; i < lon; i++) {
      d = key.charAt(i);
      d += 10;
      result += d;
    }

    return result;
  }

  public static String basicDecode(String key) {
    String result = "";
    int lon = key.length();
    char d;
    for (int i = 0; i < lon; i++) {
      d = key.charAt(i);
      d -= 10;
      result += d;
    }

    return result;
  }

Esto produce el siguiente resultado:

Hello my name is Michael
Rovvy*w?*xkwo*s}*Wsmrkov
Hello my name is Michael
Respuesta: 2

Si está buscando obtener esto:

Codificar: "Pmttw (u? (Vium (q {(Uqkpimt"

para su código entonces

public static String basicEncode(String key) {
String result = "";
int lon = key.length();
char d;
for (int i = 0; i < lon; i++) {
  d = key.charAt(i);
  d += 8; //CHANGED TO 8
  result += d;
}

return result;

}

Es decir, ingresando "Hola, mi nombre es Michael" como la cadena para el método basicEncode.

¿Me puede decir cuál es el objetivo de este programa? ¿Qué método es apropiado para colocar la cadena inicial?

Respuesta: 3

Estoy buscando un marco de medios java puro principalmente para la reproducción. Los formatos compatibles deben ser (al menos) wav, midi y quizás ogg vorbis. Idealmente, también sería compatible con funciones más avanzadas como ...

Estoy tratando de usar una clave SAS para recuperar un contenedor de Azure WASB en código Java. Esto se está haciendo en el código HDFS, pero por alguna razón parece que no puedo hacer que funcione. Me las he arreglado para simplificar ...

Estoy usando Eclipse para administrar pocos archivos Java dentro de un gran proyecto. Quiero filtrar todos los archivos innecesarios (carpeta de proyecto -> propiedades -> recurso -> filtros de recursos) para optimizar mi configuración (Eclipse ...

Recientemente actualicé el arranque de primavera a la versión 2.0.3 y algunas plantillas comenzaron a fallar. Obtuve este error: Se produjo un error durante el análisis de la plantilla (plantilla: "recurso de ruta de clase [plantillas / mypage ...