【发布时间】:2014-04-25 00:16:05
【问题描述】:
我正在做一个家庭作业,它将字母编码和解码为 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 数组的长度时遇到问题。其余的事情我没有太多运气。我知道您也必须解析整数。任何对完成这项工作的见解将不胜感激!
【问题讨论】:
-
请正确格式化您的代码。
-
它的
array.length不是array.length() -
docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html ... 使用 IDE,它会告诉你数组没有
length()方法,它们有一个公共长度 field跨度> -
太棒了!这就是我需要的。感谢您的指导。
标签: java arrays parsing for-loop integer