2014-04-25 42 views
0

我正在做一个家庭作业分配,它将字母编码和解码为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数组长度的问题。其余的我没有太多的运气。我知道你也必须解析整数。任何洞察到完成这将不胜感激!

+0

请正确地格式化代码:希望从那里:)

在你的循环,你自己看着办吧。 – arshajii

+0

其'array.length'不是'array.length()' – user2573153

+0

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html ...并使用IDE,它会告诉你该数组没有'length()'方法,它们具有公共长度*字段* –

回答

0

既然是功课,我就给你下一步;

String num = nums[i]; 
x = Integer.parseInt(num); 
+0

太棒了!我用完成的解决方案更新了代码。再次感谢! – chris