2012-04-10 121 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>();