当我使用这种简单的编码/解码方法时,我有一个小错误。当用户通过扫描仪输入像:
字符串:“你好,我叫迈克尔”
编码:“ 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;
}
答案 0 :(得分: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 :(得分: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;
}
这是通过输入“ Hello,我的名字叫迈克尔”作为basicEncode方法的字符串。
您能告诉我该程序的目标是什么吗?哪种方法适合放置初始String?
答案 2 :(得分:0)
也许在我的计算机上使用UTF-8,因为当我在另一个PC环境中执行这些相同的代码时,它可以正常工作。
我如何检查出什么问题了?
我知道,当我想将头寸数量更改为少于8个时,效果很好,但是为什么不将其增加到10个或更多呢?