我有一个int
数组int a1[];
在代码的某个点上,如果条件满足,我想将a[i]
的值替换为空格。例如,如果我的输出是:
1 2 3 4 5 6
我要做到:
1 2 4 5 6
我该怎么做?
编辑:一个包含整数和空格的整数数组是我想出的一种解决方案,但似乎不起作用。我想要的只是一种获得所显示输出的方法,目的是使我的输出更具吸引力。我正在做一个记忆游戏,我想在猜测正确的时候显示空白,以便用户可以看到他的进度。
答案 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);
}
}
}
方法,而是完全在模型类之外决定演示。为此,添加吸气剂toString
和getNumber
,以便演示文稿可以访问数据并决定如何向用户展示数据。
原始答案
正如评论中所说,这是不可能的。
您可以选择一个特殊的isGuessed
值来表示“空格”,并记住每次都将其打印为空格。这很脆弱,因为其他程序员可能会忘记打印空格而只打印int
值。
镀金解决方案(希望您不需要它):设计具有两个子类int
和Element
的抽象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]);
}