【问题标题】:Java String to CharArray, hidden mannerJava String to CharArray,隐藏方式
【发布时间】:2012-08-11 15:11:28
【问题描述】:

我有另一个问题要问 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;
}

【问题讨论】:

    标签: java arrays string char


    【解决方案1】:

    您需要在新的 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] = ' ';
        }
    

    【讨论】:

    • 它完全一样,只是更短的版本。想知道我是否可以插入另一个循环以在它们之间留出空格...
    • 无需插入另一个循环。当你有 i%2!=0 时,只需在同一个循环中用 '' 覆盖那个 '_'。看我的回答
    • 更新了,别忘了加空格
    【解决方案2】:

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

    for (int i = 0; i < Array.getLength (word); i++) {
            word[2*i] = '_';
            word[2*i+1] = ' ';
        }
    

    【讨论】:

      【解决方案3】:

      在for循环中添加额外的条件

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

      或仅当 i%2 =0 时才覆盖单词[i]。只有一个 if 阻止后你有

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

      【讨论】:

      • 它确实给了我 _,但我的单词是 4 个字母的单词,所以我假设它将两个字母转换为下划线,两个转换为空格
      • 没有得到你。您想保留相同数量的字符,但在它们之间引入额外的空格?如果是这种情况,您可以使用此处发布的其他 sols,否则您可以用空格覆盖备用 '_'
      【解决方案4】:
      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;
      

      【讨论】:

        猜你喜欢
        • 2014-08-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-08
        • 1970-01-01
        • 2011-03-15
        • 2011-10-19
        • 1970-01-01
        相关资源
        最近更新 更多