1

ネイティブの純粋なJavaのみを使用して2D文字列[][]配列コンソールのプリントアウトを実現する方法を学ぶのは興味深いことです。次のコードは、プログラムを実行すると2Dマトリックスを出力しますが、文字列を2D配列に変換するテストを実行しているときに、特定の1行が混乱していました。

rulesTable[i][j] = rulesMatrix[j];

これをコーディングする方法はありますか?rulesMatrixは、現在持っている1d文字列配列ではなく2d文字列配列になりますか?どんなヒントも素晴らしいでしょう。ありがとうございました。次のスニペットには、質問のループが含まれています。

protected void forgeGrammar()
{

    //this verifies that all 5 rules displayed in the console are valid
    grammarRules = new String(startingRule + secondRule + thirdRule + fourthRule + fifthRule);

    rulesArray = new String[grammarRules.length()];

    //remove the commas from the grammar  
    rulesArray = grammarRules.split("[,]");

    //convert the grammar to a 2D String array
    rulesTable = new String[rulesArray.length][5];
    for (int i = 0; i < rulesTable.length; i++)
    {
        String[] rulesMatrix = rulesArray[i].split(blank);

        for(int j = 0; j < rulesMatrix.length; j++)
        {
            rulesTable[i][j] = rulesMatrix[j];
        }
    }
4

1 に答える 1

1

コードrulesTable内で初期化されることはありません。そのため、以下の行でNullPointer例外がスローされます。

rulesTable[0][0].contains(rules_input.substring(0, 4));
于 2012-08-21T08:44:02.330 に答える