当我使用这个简单的编码/解码方法我有一个小的误差。当通过扫描仪用户输入是这样的: 字符串:“你好,我的名字是迈克尔” 编码: “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;
}
你的代码中缺少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
如果你正在寻找得到这个:
编码: “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方法。
你能告诉我这个计划的目标是什么?初始字符串被放置在什么方法是否合适?
也许是我的电脑上的东西用UTF-8,因为当我在另一台PC环境中执行这些相同的代码它工作得很好。
如何检查有什么不好?
我知道,当我想改变的位置数少于8它的作品不错,但为什么不,如果它在10以上?