2015-11-02 66 views
0

我在這裏找到了我的答案,這裏多次爲編程問題,但事情是這次我不能,不在這裏,一般不在網絡中,所以在這裏我問。2維字符數組在Java中的創建/初始化

我得到這個錯誤
Error msg: Syntax error on token ";",, expected.

public char pinakas[][] - 四號線而我試圖創建/初始化我的2維字符數組(它會從商店字符至Z)

public class Board { 

    public char pinakas[][]; 
    pinakas = new char[4][3]; 


    // constructor - initialize 
    public Board() { 

     for (int i = 0; i < 5; i++) { 
      for (int j = 0; j < 4; j++) { 
       pinakas[i][j] = '*'; 
      } 
     } 
    } 

    // Fill board with * 
    public void fillBoard1() { 
     for (int i = 0; i < 5; i++) { 
      for (int j = 0; j < 4; j++) { 
       pinakas[i][j] = '*'; 
      } 
     } 
    } 

    // Fill board with A 
    public void fillBoard2() { 
     for (int i = 0; i < 5; i++) { 
      for (int j = 0; j < 4; j++) { 
       pinakas[i][j] = 'A'; 
      } 
     } 
    } 
} 

請幫幫忙,我要瘋了 (我使用的Eclipse和Java編碼(huehue))

+1

請保留IDE(eclipse)標籤提及和標記問題給那些處理IDE本身的人。 IDE是您的*編程*問題的根源的情況極不可能。 – ChiefTwoPencils

+1

他的哪行代碼有這個錯誤? – Amirag

+0

soz因爲使用了錯誤的標籤,不知道我在面對什麼,解決方案很簡單,我看到了我的錯誤,我甚至編輯了這篇文章,因此它不涉及與此問題無關的事情! –

回答

1

首先,你必須選擇2初始化您的數組:
1.你可以把它像在類的頂部:

public char pinakas[][] = new char[4][3]; 

請注意, java,大多數程序員會把[]後面的變量放在變量後面,而不是後面的名字 2.你可以在類的頂部聲明它並在構造函數中初始化:

public char pinakas[][]; 

public Board() 
{ 
    pinakas = new char[4][3]; 
    //here you can do whatever you want 
} 

其次,你有一個尺寸爲[4] [3]的array
您從0到4(包括4)和從0到3(包括3)傳遞的for循環中。 實際上,第一個位置有5個可能的值。第二位則是4位。 因此,即使您設法解決1個問題,您將得到OutOfBoundsException也會發生什麼情況。

+0

感謝兄弟!我是一個新手與Java,soz這樣一個「基本」的問題 - 。 - –

+0

@NickTritsis沒有問題。每天我們學習新的東西:) – Amirag

0

真正的答案是,你不能有EXPRES在班級的身體中。雖然這樣可以:

public char pinakas[][] = new char[4][3]; 

你現在擁有的不是。

+6

在java中,你可以同時做到這一點。 – afzalex

+0

@afzalex你真的可以嗎?我其實並不知道。 編輯:是的,剛試過。 afzelex是正確的。 –

0

你不能有這段代碼只是你的類

pinakas = new char[4][3]; 

它必須是一個方法或構造內的內掛在那裏。 或者你可以簡單地在你定義它同時初始化變量:

public char pinakas[][] = new char[4][3]; 
0

你的問題是,你是分離的表達成一個Java類,它是無效的兩條線。代碼只能在一個方法中執行。你只需要兩行合併成一個單一的一個:

變化:

public char pinakas[][]; 
pinakas = new char[4][3]; 

要:

public char pinakas[][] = new char[4][3]; 
0

你需要把你的2線的平卡斯陣列爲一體,像所以:

public char pinakas[][] = new char[4][3]; 

然後,你需要修復你的for循環填充你的數組,所以你沒有得到一個IndexOutOfBounds例外:

public Board() { 
    //You were using 5 and 4 
    //When you should be using 4 and 3 
    for (int i = 0; i < 4; i++) { 
     for (int j = 0; j < 3; j++) { 
      pinakas[i][j] = '*'; 
     } 
    } 
} 
0

試試這個...... public char a [] [] = new char [2] [3];

我認爲Eclipse不支持數組聲明,然後在方法外部的類中進行初始化。