【问题标题】:how to add values in a character list and stop adding if the next values is null in java如何在字符列表中添加值并在java中下一个值为空时停止添加
【发布时间】:2016-05-02 02:46:06
【问题描述】:

我有一个二维数组。以下是我的意见

APPLE.CHIK

P.B.

ESCAPE.OTHER

上面的每个输入都代表一个CHARACTER和'.'表示 NULL 字符。这些值在二维数组中。我想将值添加到列表中,如果下一个值为“。”,则继续添加并停止。 .

预期输出:

APPLE CHIK ESCAPE 其他

实际输出:

APPCHIESCAPOTHE

如您所见,“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' 是一个字符列表。我正在检查下一个框是否不为空,然后将值添加到字符列表中。但是由于“APPLE”的下一个字符为空值,因此当它在循环中到达字符“E”时,条件失败并且字符“E”不会添加到列表中。但我不能错过“IF NEXT VALUE IS NULL”条件,因为它会影响我的游戏逻辑。

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

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

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

注意:这是一款益智游戏,此处的输入是网格中的“交叉线索”

【问题讨论】:

  • "CHIK" 转换为"CHIC" 并删除'P', null, 'B' 并将null 转换为“空格”的逻辑是什么?
  • 它的错字。它是一个交叉词,null 表示网格中的黑框。 @Blip
  • '.' represents NULL character 是什么意思? \u0000null 引用所代表的字符? box[][]是什么类型的?
  • 考虑“。”表示填字游戏中的黑框。它用来表明它什么都没有,而 box[i][j] 是 Box 类类型的对象数组。现在不要考虑@SubOptimal

标签: java arrays string list


【解决方案1】:

问题(在您的第一种方法中)是您只添加了后面没有null 的字符。表示不会添加每个最后一个字符(例如 APPLE)。

如果您不想添加单个字符(例如P.),也许您应该先检查null 之前的字符数是否大于一个。

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

【讨论】:

    猜你喜欢
    • 2019-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多