我有一个二维数组。以下是我的输入
苹果
P.B.
逃生
上面的每个输入代表一个CHARACTER和'。'。代表NULL字符。值在2D数组中。我想将值添加到列表中,继续添加,如果下一个值为“。”则停止。 。
预期的输出:
APPLE CHIK ESCAPE其他
实际输出:
APPLECHIESCAPOTHE
如您所见,“ APPLE”中的字母“ E”,“ CHIK”中的字母“ K”,“ ESCAPE”中的字母“ E”和“ OTHER”中的字母“ R”没有添加到列表中
我尝试了以下代码,
if (((j + 1) < box[i].length ) && (box[i][j+1]!= null))
{
ans.add(box[i][j].getSolution());
}
我什至尝试了以下代码,
if (((j + 1) < box[i].length ) && (box[i][j]!= null))
{
ans.add(box[i][j].getSolution());
}
当我尝试这个时,输出是
APPLECHICPBESCAPEOTHER
但是我不希望添加字符“ P”和“ B”,因为它后面没有任何字符。
在代码中,“ ans”是一个字符列表。我正在检查下一个框是否不为null,然后将值添加到字符列表。但是由于“ APPLE”的下一个字符为空值,因此当它在循环中到达字符“ E”时,条件将失败,并且字符“ E”不会添加到列表中。但是我一定不能错过“ IF NEXT VALUE IS NULL”条件,因为它会影响我的游戏逻辑。
因此,我需要实现以下目标,
迭代2D数组,将值添加到字符列表,如果下一个值为null,则停止
由于这些值已添加到字符列表中,因此我不知道如何再次对字符集进行分组以将其显示为有意义的单词,因此,是否可以将过滤后的值添加到字符串数组中?
注意:它是一个益智游戏,这里的输入是网格中的“ ACROSS CLUES”
最佳答案
问题(第一种方法)是您只添加了后跟null
的字符。表示不会添加每个最后一个字符(例如APPLE)。
如果您不想添加单个字符(例如P.
),则应该首先检查null
之前的字符数是否大于1。
然后遍历所有字符,并将它们添加到ans
,直到找到null
。