令牌“=”上的语法错误,此令牌后预期的表达式

时间:2014-02-14 12:42:58

标签: java arrays for-loop multidimensional-array syntax-error

我收到一条错误消息,我没有表态,我的代码如下:

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

有人可以就此提出建议吗?

非常感谢。

4 个答案:

答案 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]是一个位置,所以只能容纳一个数字/字符等。 您正尝试将值ielementSplit[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);