我正在做一个家庭作业分配,它将字母编码和解码为int,反之亦然。我的第一个编码循环非常棒!for循环将整数值转换为字母
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数组长度的问题。其余的我没有太多的运气。我知道你也必须解析整数。任何洞察到完成这将不胜感激!
请正确地格式化代码:希望从那里:)
在你的循环,你自己看着办吧。 – arshajii
其'array.length'不是'array.length()' – user2573153
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html ...并使用IDE,它会告诉你该数组没有'length()'方法,它们具有公共长度*字段* –