【发布时间】:2016-12-03 07:05:02
【问题描述】:
特别是如果说ArrayList 是由字符串元素组成的,我想检查那些Strings 中的每个字母。这是我尝试过的,但显然它不起作用:
public void fillBoard()
{
board = new char[ROW][COL];
for (String s: words){
for(int rows = 0; rows < board.length; rows++)
{
for(int cols = 0; cols < board[rows].length; cols++)
{
if(!s.equals(board[rows][cols]))
{
board[rows][cols] = randomChar();
}
}
}
}
}
我试图将2D 数组中的每个字符与构成ArrayList 的Strings 中的字母进行比较。
ArrayList 是 ArrayList<String> words = new ArrayList<String>();,它由用户在提示时输入单词时填充。所以它看起来像 {"hello","goodbye","words",...}
board 是一个二维字符数组,维度由用户输入定义
然后通过这种方法由随机字符填充:
public char randomChar()
{
char alphabet[] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k',
'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x',
'y', 'z'};
return alphabet[(char)(alphabet.length * Math.random())];
}
}
其目的是char board[][] 数组也可能包含随机放置的单词,并且当板更新时,words ArrayList 中不属于 string 的所有字母再次随机化,保持用户输入的单词以及放置在数组中的位置,有点像战舰程序中每回合后更新棋盘。
【问题讨论】:
-
将你的字符串转换成一个字符数组,然后尝试比较,顺便说一下,你将完整的字符串与二维数组的每个字符进行比较,它永远不会使用这个逻辑,将一行与字符串进行比较
-
你重新初始化你的 char 数组,所以它永远不会工作。提供有关输入数据的更多信息,也许提供一个示例以便我们提供帮助。
-
@Default71721 我添加了一些额外的信息
标签: java arraylist multidimensional-array