错误:不兼容的类型java

时间:2014-02-26 09:48:47

标签: java arrays

当我尝试返回结果时收到此错误消息

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;
}
}

提前谢谢。

3 个答案:

答案 0 :(得分:3)

char[][] result = ' '; 

' '属于类型字符,result属于char[][]类型(char数组的数组)。

正如编译器所说,确切地说,它们是不兼容的类型

您有两种解决方案:

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

char[][]result = ' ';

' '是单个字符,因此它不适合2D数组。 2D数组使用{{},{},..}

初始化
char[][] result = {{' '}};

这里结果[0] [0]将是' '