我向Java大师提出了另一个令人讨厌的问题
基本上我想要的是:
_ _ _ _
; 我可以进入第二步,但是当我尝试隐藏下划线中的单词时,它显示为____
而不是_ _ _ _
。
代码:
//Randomly picks word from Array which played
public String pickWord(){
String guessWord = (wordsList[new Random().nextInt(wordsList.length)]);
return guessWord;
}
//Hides picked word
public char[] setWord(){
word = pickWord().toCharArray();
for (int i = 0; i < Array.getLength (word); i++) {
word[i] = '_';
}
return word;
}
答案 0 :(得分:0)
您需要允许新char数组中的空格:
String testWord = "test";
char[] word = new char[testWord.length() * 2];
for (int i = 0; i < word.length; i+=2) {
word[i] = '_';
word[i + 1] = ' ';
}
答案 1 :(得分:0)
在for-loop中添加额外条件
if(i%2 == 0)
word[i]='_';
else
word[i]=' ';
或仅在i%2 = 0时覆盖单词[i]。
之后只有一个挡块 word[i]='_';
if(i%2 != 0)
word[i]=' ';
答案 2 :(得分:0)
当您在word变量中存储''并将其打印出来时,它会显示“ __ ”,因为它会显示连续的“”。你可以用各种方式做到这一点 - 就像你可以在每个字的字符中放置一个空格或在字变量中填充空格
for (int i = 0; i < Array.getLength (word); i++) {
word[2*i] = '_';
word[2*i+1] = ' ';
}
答案 3 :(得分:0)
word = pickWord().toCharArray();
spacedWord = new char[word.length*2-1];
for (int i = 0; i < 2*word.length; i+=2) {
spacedWord[i] = '_';
spacedWord[i+1] = ' ';
}
return spacedWord;