2014-02-26 138 views
-4

当我尝试返回结果错误:不兼容的Java类型

error: incompatible types 
char[][]result = ' '; 
       ^
required: char[][] 
found: char 

在这段代码中我得到这个错误信息。 我需要改变结果为char [] [] 我的代码的另一部分,但不知道如何做到这一点。 我只是不能得到它。

public class Encryptor { 

private int N; 

public Encryptor(int N) { 
this.N = N; 
} 
////////////////////added///////////////// 

public char[][] encrypt(char[][] P) { 
char ch; 
char[][]result = ' '; 

for (int i = 0; i < P.length; i++) { 
    for (int j = 0; j < P[0].length; j++) { 

ch = P[i][j]; 
    if ((ch >= '0') && (ch <= '9')) { 
    ch = rotate(ch, '0', '9'); 
    } else if ((ch >= 'A') && (ch <= 'Z')) { 
    ch = rotate(ch, 'A', 'Z'); 
    } else if ((ch >= 'a') && (ch <= 'z')) { 
    ch = rotate(ch, 'a', 'z'); 
    } else { 
    // no need to encrypt 
    } 
result += ch; 
} 
} 
return result; 
} 
/////////////////////////////////////////// 


private char rotate(char c, char min, char max) { 
int counter = N; 

while(counter > 0) { 
    c++; 
    if (c > max) c = min; 
    counter--; 
} 
return c; 
} 

public String encrypt(double D) { 
return encrypt("" + D); 
} 

public int getN() { 
return N; 
} 
} 

非常感谢您。

+0

你期望什么'char [] [] result ='';'要做什么? –

+0

你来自javascript吗? –

回答

3
char[][] result = ' '; 

' ' char类型的,resultchar[][]型(char阵列的阵列)的。

正如编译器所说的那样,它们是不兼容的类型

有两种解决方法:

  • 古怪的解决方案:char[][] result = {{' '}};
  • 不奇怪的解决方案:char result = ' ';
0

' '值是char,而不是一个char[][]
所以你不能这样做。

0
char[][]result = ' '; 

' '是单个字符所以其incomitable到2D阵列。 2D阵列与{{},{},..}

char[][] result = {{' '}}; 

这里初始化结果[0] [0]将是' '