这是我到目前为止的代码并且它没有编译......它应该将灰度转换为字符映射...我缺少什么?
public char[][] transform(int[][] out) {
int row = out[0].length;
int column = out[1].length;
char[][] mappedImage = new char[row][column];
for (int i= 0; i < row ;i++){
for(int k = 0; k < column ;k++){
if(0<out[i][k]&&out[i][k]<25){
char[i][k] == 'M';
} else if(26<out[i][k]&&out[i][k]<50){
char [i][k] = '$';
} else if(51<out[i][k]&&out[i][k]<76){
char [i][k] = 'o';
} else if(77<out[i][k]&&out[i][k]<102){
char [i][k] = '|';
} else if(103<out[i][k]&&out[i][k]<127){
char [i][k] = '*';
} else if(128<out[i][k]&&out[i][k]<152){
char [i][k] = ':';
} else if(153<out[i][k]&&out[i][k]<178){
char [i][k] = '=';
} else if(179<out[i][k]&&out[i][k]<204){
char [i][k] = '\'';
} else if(205<out[i][k]&&out[i][k]<230){
char [i][k] = '.';
} else (231<out[i][k]&&out[i][k]<255){
char [i][k] = ' ';
}
}
}
return mappedImage;
}
答案 0 :(得分:1)
从...开始
char[i][k] == 'M'
我认为你的意思是
mappedImage[i][k] == 'M'
基本上,char
是保留字,不能用作变量名。
然后
mappedImage[i][k] == 'M';
应该是......
mappedImage[i][k] = 'M';
==
是一个比较运算符,你基本上是说mappedImage[i][k]
等于'M'
,但是没有对结果做任何事情,Java没有看作有效语句
最后......
} else (231<out[i][k]&&out[i][k]<255){
哪个应该是
} else if (231<out[i][k]&&out[i][k]<255){
您错过了if
声明。 else
基本上说如果没有别的,就这样做,但是你提供了一个条件,这让编译器感到困惑
答案 1 :(得分:1)
这是你想要做的吗? 你不能说char [x] [x] =某事,或char [x] [x] ==某事, char是一种数据类型而不是变量。
当为变量赋值时,你需要在右边有变量名,而在“=”符号左边的值,在你的语句中你没有任何变量名,只是一个数据类型。
此外,当if / else语句if将条件作为参数时,否则不会。
public char[][] transform(int[][] out) {
int row = out[0].length;
int column = out[1].length;
char[][] mappedImage = new char[row][column];
for (int i= 0; i < row ;i++){
for(int k = 0; k < column ;k++){
if(0<out[i][k]&&out[i][k]<25){
mappedImage[i][k] = 'M';
} else if(26<out[i][k]&&out[i][k]<50){
mappedImage [i][k] = '$';
} else if(51<out[i][k]&&out[i][k]<76){
mappedImage [i][k] = 'o';
} else if(77<out[i][k]&&out[i][k]<102){
mappedImage [i][k] = '|';
} else if(103<out[i][k]&&out[i][k]<127){
mappedImage [i][k] = '*';
} else if(128<out[i][k]&&out[i][k]<152){
mappedImage [i][k] = ':';
} else if(153<out[i][k]&&out[i][k]<178){
mappedImage [i][k] = '=';
} else if(179<out[i][k]&&out[i][k]<204){
mappedImage [i][k] = '\'';
} else if(205<out[i][k]&&out[i][k]<230){
mappedImage [i][k] = '.';
} else if(231<out[i][k]&&out[i][k]<255){
mappedImage [i][k] = ' ';
}else{
//TODO whatever goes here
}
}
}
return mappedImage;
}
打印出来你需要这样的东西:
for(int i =0; i < row; i++){
for(int j =0; j < column; j++){
System.out.println("row is: " +mappedImage[i] + "col is: " + mappedImage[j]);
}
}