我收到一条错误消息,我没有表态,我的代码如下:
public void generate2DArray(ArrayList<String> mapArray, int lineNumber)
{
lineNumber = lineNumber - 2;
String [] elementSplit = null;
char TwoDArray [][] = new char[lineNumber][];
for(int i = 0; i < mapArray.size(); i++){
elementSplit = (mapArray.get(i)).split("(?!^)");
for(int j = 0; j < elementSplit.length; j++){
TwoDArray [i][j] = [i][elementSplit[j]];
}
System.out.println(Arrays.toString(elementSplit));
}
}
错误发生在:
期间TwoDArray [i][j] = [i][elementSplit[j]];
我收到以下错误:
Syntax error on token "=", Expression expected after this token
有人可以就此提出建议吗?
非常感谢。
答案 0 :(得分:1)
你有错误,因为TwoArray [i] [j]只是一个字符而不是字符串。
elementSplit [j]是一个String,所以你必须使用这个表格
TwoDArray [i][j]= elementSplit[j].charAt(i);
答案 1 :(得分:0)
以下是满足您需求的示例。
import java.util.ArrayList;
import java.util.Arrays;
public class ALTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<String> al = new ArrayList<String>();
al.add("################");
al.add("#..............#");
al.add("#........G.....#");
al.add("#..............#");
al.add("################");
char[][] twoDarray = get2DArray(al);
}
private static char[][] get2DArray(ArrayList<String> mapArray) {
// TODO Auto-generated method stub
char [] elementSplit = null;
char twoDarray [][] = new char[mapArray.size()][];
for(int i = 0; i < mapArray.size(); i++){
elementSplit = (mapArray.get(i)).toCharArray();
twoDarray [i] = elementSplit;
System.out.println(Arrays.toString(elementSplit));
}
return twoDarray;
}
}
答案 2 :(得分:0)
你遇到的问题是你把2D数组放入了你的错误。
TwoDArray [i][j]
是一个位置,所以只能容纳一个数字/字符等。
您正尝试将值i
和elementSplit[j]
的值放在同一位置。
所以你的行:
TwoDArray [i][j] = [i][elementSplit[j]];
未正确实施。
你只能这样做:
TwoDArray [i][j] = i;
或
TwoDArray [i][j] = elementSplit[j];
希望这有帮助。
答案 3 :(得分:0)
更改
TwoDArray [i][j] = [i][elementSplit[j]];
到
TwoDArray [i][j] = elementSplit[j].charAt(0);