Java字符串到CharArray,隐藏的方式

时间:2012-08-11 15:11:28

标签: java arrays string char

我向Java大师提出了另一个令人讨厌的问题

基本上我想要的是:

  1. 接受消息;
  2. 将其转换为arrayOfChar;
  3. 以下列方式隐藏它:_ _ _ _;
  4. 我可以进入第二步,但是当我尝试隐藏下划线中的单词时,它显示为____而不是_ _ _ _

    代码:

    //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 个答案:

答案 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;