如何修正错误的基本解码?

问题描述 投票:1回答:3

当我使用这个简单的编码/解码方法我有一个小的误差。当通过扫描仪用户输入是这样的: 字符串:“你好,我的名字是迈克尔” 编码: “Pmttw(U(vium(Q {(Uqkpimt?” 解码:“你好M7的名字是迈克尔”

其解码像“Y”现在是“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;
}
java encryption
3个回答
1
投票

你的代码中缺少basicDecode 10。除了这一个没有看到你的问题。

  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;
  }

这将产生以下结果:

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

1
投票

如果你正在寻找得到这个:

编码: “Pmttw(U(vium(Q {(Uqkpimt?”

为你的代码

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;

}

这是通过输入“你好,我的名字是迈克尔”作为字符串的basicEncode方法。

你能告诉我这个计划的目标是什么?初始字符串被放置在什么方法是否合适?


0
投票

也许是我的电脑上的东西用UTF-8,因为当我在另一台PC环境中执行这些相同的代码它工作得很好。

如何检查有什么不好?

我知道,当我想改变的位置数少于8它的作品不错,但为什么不,如果它在10以上?

© www.soinside.com 2019 - 2024. All rights reserved.