我正在做一个家庭作业,它将字母编码和解码为int,反之亦然。第一个编码循环我工作得很好!
public static String Encode(String msg){
String result="";
String m = msg.toUpperCase();
char c;
int x;
for (int i = 0; i<m.length(); i++){
c = m.charAt(i);
x = c;
if (x == 32){
x = 0;
} else{
x -= 64;
if (x < 1 || x > 26){
x = 99;
}
}
result += String.valueOf(x) + " ";
}
return result;
}
它接受字符串msg并运行for循环将其转换为等效的整数。我的问题是解码。基本上,您输入的数字将在每个数字之间用逗号输入。然后我将消息放入一个数组并拆分它以删除逗号。然后我会接受并读取for循环中的每个值并显示等效的字母。这是我被困的地方。我理解逻辑。它基本上与第一个循环相反,但我似乎无法有效地编码它。这就是我所拥有的:
public static String Decode(String msg){
String result = "";
String m = msg;
char c;
int x;
String[] nums = msg.split(",");
for (int i = 0; i<nums.length; i++){
String num = nums[i];
x = Integer.parseInt(num);
if(x <= 0 || x > 26){
x=-1;
}
result += String.valueOf((char)(x + 64)) + " ";
}
return result;
}
我在读取nums数组的长度时遇到问题。我对其余部分没有太多运气。我知道你也必须解析整数。任何有关完成此任务的见解将不胜感激!
答案 0 :(得分:0)
既然是家庭作业,我会给你下一步;希望你能从那里弄明白:)
在你的for循环中:
String num = nums[i];
x = Integer.parseInt(num);