0

我向 Java 大师们提出了另一个棘手的问题

基本上我想要的是:

  1. 接话;
  2. 将其转换为 arrayOfChar;
  3. 将其隐藏为以下方式_ _ _ _

我可以进入第二步,但是当我尝试在下划线中隐藏单词时,它显示为____而不是_ _ _ _.

代码:

//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;
}
4

4 回答 4

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] = ' ';
    }
于 2012-08-11T15:17:15.283 回答
0

在 for 循环中添加额外条件

if(i%2 == 0)
word[i]='_'; 
else
word[i]=' ';

或者仅当 i%2 =0 时才覆盖 word[i]。在你拥有之后只有一个 if 阻止

  word[i]='_';
  if(i%2 != 0)
  word[i]=' '; 
于 2012-08-11T15:18:09.490 回答
0

当您将 ' ' 存储在 word 变量中并打印它时,它会显示“ __ ”,因为它显示连续的 ' '。你可以通过各种方式来做到这一点——比如你可以在单词的每个字符上放置一个空格或在单词变量中填充一个空格

for (int i = 0; i < Array.getLength (word); i++) {
        word[2*i] = '_';
        word[2*i+1] = ' ';
    }
于 2012-08-11T15:18:28.273 回答
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;
于 2012-08-11T15:18:42.480 回答