如何在Java中将`“(空格)存储在`int`数组中

时间:2018-11-20 08:38:22

标签: java arrays

我有一个int数组int a1[];

在代码的某个点上,如果条件满足,我想将a[i]的值替换为空格。例如,如果我的输出是:

1 2 3 4 5 6

我要做到:

1 2   4 5 6

我该怎么做?

编辑:一个包含整数和空格的整数数组是我想出的一种解决方案,但似乎不起作用。我想要的只是一种获得所显示输出的方法,目的是使我的输出更具吸引力。我正在做一个记忆游戏,我想在猜测正确的时候显示空白,以便用户可以看到他的进度。

3 个答案:

答案 0 :(得分:2)

修改

对于您的记忆游戏,我建议使用一个模型类来保存该数字并指出是否已被猜中。遵循以下原则:

char

您可能还希望将要猜测的项目也放入课堂,以便将所有内容都放在一个地方(或者我误解了)。

甚至更好,而不是完全依靠public class GameElement { final int number; boolean guessed = false; public GameElement(int number) { this.number = number; } public void setGuessed() { guessed = true; } @Override public String toString() { if (guessed) { return " "; } else { return String.valueOf(number); } } } 方法,而是完全在模型类之外决定演示。为此,添加吸气剂toStringgetNumber,以便演示文稿可以访问数据并决定如何向用户展示数据。

原始答案

正如评论中所说,这是不可能的。

您可以选择一个特殊的isGuessed值来表示“空格”,并记住每次都将其打印为空格。这很脆弱,因为其他程序员可能会忘记打印空格而只打印int值。

镀金解决方案(希望您不需要它):设计具有两个子类intElement的抽象IntElement类,并创建{{ 1}}(您可能会找到一个更好的名称)。让SpaceElement持有Element,其IntElement返回int的字符串表示形式。使toString不包含任何数据,并且其int返回由单个空格组成的字符串。现在,您可以根据需要用数字和空格填充数组。

答案 1 :(得分:0)

简短答案:如果您是tryint要做的事情,则不能将一个空格(一个字符)存储为Integer。 我会将int更改为Integer类型,以便可以向数组添加空值,如果找到空值,我会打印空白。

但是,您可以获得此类char的数字表示形式,但是在这种情况下,它将更改数据类型。

答案 2 :(得分:0)

在评论中,您提到您正在做一个记忆游戏,并且空格仅用于可视化“正确的猜测”。考虑到这一点,您可以保持现有数组不变,并引入一个与values数组大小相同的并行boolean[] guesses = new boolean[a1.length];

然后,如果有正确的猜测,您将更新guesses[i] = true;并使用类似的内容打印数组

for (int i=0; i < a1.length; i++) {
   System.out.print(guesses[i] ? " " : a1[i]);
}