2014-09-05 62 views
-5

chr [k] = byte(chp [i] -chq [j]); //问题CodeConversion从字节到int

问题在于类型转换。我看到了各种各样的答案,并且在实施时无法解决。 如何清除上面代码中的Syntex错误

+0

Java使用C风格的转换语法。 – user2357112 2014-09-05 17:18:42

+0

好的,但我如何纠正它? – Jack 2014-09-05 17:20:55

回答

0

使用((字节)一些表达式)而不是字节(某些表达式)。

+0

Thanku MirMasej,编辑代码user3062946复制粘贴错误分别是对不起 – Jack 2014-09-05 17:53:51

0

您是否试图比较两个相等长度字符串之间的数字差异(char by char)?我很抱歉,但你对这个问题的解释还有很多不足之处。

如果我试图解决比较两个字符串之间的数值差的问题,我可能会拿出这样的:

char[] a = "cd".toCharArray(); 
    char[] b = "aa".toCharArray(); 

    int i = 0; 
    int sum = 0; 
    while (a.length == b.length && i < a.length) 
    { 
     if (a[i] > b[i]) 
      sum += (a[i]-b[i]); 
     else 
      sum += (b[i])-a[i]; 

     i++; 
    } 

    System.out.println("Total character difference: " + sum); 

这应该涵盖所有情况的......假设我理解正确的你在问什么。

+0

是的,但是我的代码中有什么问题(具体转换类型) – Jack 2014-09-05 17:40:44

+0

我没有看到类型转换有任何问题......但是您在if和else情况下执行相同的算术运算。你不应该在'else'情况下做'chr [k] = byte(chq [i] -chp [j]);'' – user3062946 2014-09-05 17:43:56

+0

此外,在字节相同的情况下,你设置'ch [k] = 0,我假设你的意思是设置'chr [k] = 0' ...你也不会增加'i '在你的循环的'else'情况下 – user3062946 2014-09-05 17:44:50