0

Java の達人に別の素朴な質問をもらいました

基本的に私が欲しいのは:

  1. 言葉を聞いてください。
  2. それを arrayOfChar に変換します。
  3. 次の方法で非表示にします_ _ _ _

2番目のステップに進むことができましたが、アンダースコアで単語を非表示にしようとすると、____ではなくと表示され_ _ _ _ます。

そのためのコード:

//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] をオーバーライドします。あなたが持っている後にブロックする場合は1つだけ

  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 に答える