2012-04-10 75 views
-1

您好我是新來的Java和我在與我創建詞搜索益智節目的難度。我試圖讓用戶輸入一個單詞的ArrayList,以便它可以輸入到我的謎題中,但是當我輸入一個字符串數組時,我會一直得到一個錯誤,任何人都可以幫忙?需要幫助進入一個ArrayList到我WordSearchPuzzle程序

import java.io.* ; 
import java.util.ArrayList ; 
public class WordSearchPuzzle 
{ 
    private char[][] puzzle ; 
    private ArrayList<String> puzzleWords ; 
    private int letterCount = 0 ; 
    private int gridDimensions; 

    public WordSearchPuzzle(ArrayList<String> userSpecifiedWords) 
    { 
     this.puzzleWords = userSpecifiedWords ; 

    } 

    private void createPuzzleGrid() 
    { 
     int i; 
     for(i = 0; i < puzzleWords.size() ; i++){ 
      letterCount = puzzleWords.size() + letterCount ; 
     } 
     gridDimensions = letterCount * 2; 
     puzzle = new char[gridDimensions][gridDimensions] ; 
    } 

    private void generateWordSearchPuzzle() 
    { 

    } 

    public void fillPuzzle() 
    { 
     int i, j, r; 
     for (i = 0; i < this.gridDimensions; i++) 
      for (j = 0; j < this.gridDimensions; j++) 
       if (puzzle[i][j] == ' ') { 
        r = (int) (Math.random() * letterCount); 
        puzzle[i][j] = letterCount.charAt(r); 
     } 
    } 

    public void fill() 
    { 
     int i, j, gridDimensions, r, c; 
     boolean added; 
     this.clear(); 
     for (i = 0; i < WordSearch.words.size(); i++) { 
      ws = (WSWord) WordSearch.words.elementAt(i); 
      row = (int) (Math.random() * this.rows); 
      col = (int) (Math.random() * this.cols); 
      added = false; 
     } 
+2

發佈您的完整代碼和嘗試執行它時收到的錯誤。 – mcfinnigan 2012-04-10 10:43:59

+0

我必須輸入字的數組裝載到我的困惑,但我不斷收到這個錯誤,當我進入像一個字符串{「你好」,「再見」}我得到這個錯誤:錯誤:非法initalizer的java.util中。 ArrayList user1323808 2012-04-10 11:02:05

+0

請發佈調用'WordSearchPuzzle'構造函數的代碼。我的猜測是你正在嘗試傳遞一個String []而不是一個列表。 – Qwerky 2012-04-10 11:08:04

回答

0

如果你指的是迷惑作爲字符串數組,它不是,它是焦炭的二維數組。也許你需要

private String puzzle[]; 

不幸的是,從給出的代碼示例中不太清楚你到底是什麼問題。

+0

我必須輸入字的數組裝載到我的困惑,但我不斷收到這個錯誤,當我進入像{「你好」,「一個String再見「}我得到這個錯誤:錯誤:java.util.ArrayList 的非法initalizer – user1323808 2012-04-10 11:00:11

+0

不,你不能用數組初始化ArrayList。你可以嘗試像這樣:this.puzzleWords = java.util.Arrays.asList(yourStringArray); – maksimov 2012-04-10 11:06:42

0

你不能只使用=複製ArrayList和它的內容: 從一個類似的問題: clone(): ArrayList.clone() I thought does a shallow copy

適合您的情況:

this.puzzleWords = new ArrayList(userSpecifiedWords) 
+0

我不認爲這是這裏的問題。他被允許這樣做,但當然,當指向相同的數組時,更改userSpecifiedWords會導致puzzleWords數組發生更改。 – giorashc 2012-04-10 10:49:35

+0

我鍵入的內容在不同的內存位置創建了一個克隆。他上面發佈的內容不會複製字符串的內容。 – 2012-04-10 10:51:25

+0

不好意思改了我的代碼,現在我輸錯了 – user1323808 2012-04-17 10:37:57

0

初始化puzzleWords。

private ArrayList<String> puzzleWords = new ArrayList<String>();