如何在字符列表中添加值,如果java

时间:2016-05-02 02:46:06

标签: java arrays string list

我有一个2D数组。以下是我的输入

APPLE.CHIK

P.B。

ESCAPE.OTHER

上述每个输入代表一个CHARACTER和'。'表示NULL字符。值为2D数组。我想将值添加到列表中,如果下一个值为',则继续添加和停止。

预期输出

APPLE CHIK ESCAPE OTHER

实际输出:

APPLCHIESCAPOTHE

正如您所看到的,“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());

            }

当我尝试这个时,输出是,

APPLECHIC的 PB ESCAPEOTHER

但是我不希望人物'P'和'B'被添加,因为它没有任何角色落后。

在代码中,'ans'是一个字符列表。我正在检查下一个框是否为空,然后将值添加到字符列表中。但由于'APPLE'将下一个字符作为空值,当它在循环中到达字符'E'时,条件失败并且字符'E'不会添加到列表中。但我不能错过“IF NEXT VALUE IS NULL”条件,因为它会影响我的游戏逻辑。

所以,我需要实现以下目标,

迭代2D数组将值添加到字符列表中,如果下一个值为空则停止

由于这些值被添加到字符列表中,我不知道如何再次对字符串进行分组以将其显示为有意义的单词。那么,是否可以将过滤后的值添加到字符串数组中?

注意:这是一款益智游戏,这里的输入是网格中的“ACROSS CLUES”

1 个答案:

答案 0 :(得分:0)

问题(在您的第一种方法中)是您只添加未跟null的字符。表示不会添加每个最后一个字符(例如APPL E )。

如果您不想添加单个字符(例如P.),您可以先检查null之前的字符数是否大于1。

然后遍历所有字符并将其添加到ans,直到找到null