如何根据用户输入的内容更改StringBuilder中的索引

时间:2014-04-13 20:43:39

标签: java string stringbuilder

我想基于用户输入的字符串更改StringBuilder上的索引,例如我创建了一个数组,但我必须将其更改为字符串,因此我使用StringBuilder来执行此操作。现在我创建了另一个将具有用户输入的字符串,然后用用户输入的内容替换索引。这就是我所拥有的:

    Arrays inventory = new Arrays();
    String[] words = inventory.getWords();
    String[] category = inventory.getCategory();
    String board = "";
    StringBuilder builder = new StringBuilder();
    for(String s : words) {
        builder.append(s+"\n");
    }

这是代码的另一部分。部分我希望它改变索引,但我得到一个错误,说明方法setCharAt未定义为字符串类型。我也尝试了其他方法,如replace(),但得到了同样的错误。我必须使用字符串:

 String word1 = builder.substring(0, 7);
     board.equals(word1);
     Scanner in = new Scanner(System.in);
     System.out.println("enter a letter to guess the word");
     String input = in.nextLine();
     char aChar = builder.charAt(0);
     if (input.equals(aChar)){
         board.setCharAt(0, input);
         System.out.println(board);
     }

1 个答案:

答案 0 :(得分:0)

为每个字母设置一个*的StringBuilder:

  String theWord = "enter";
  StringBuilder board = new StringBuilder();
  for (int i = 0; i < theWord.length(); i++) {
     board.append("*");
  }

收集用户输入(为简洁起见,不包括在内)

  char usersInput = 'e';  // For example

查找与原始单词中的字符匹配的字符,并在StringBuilder中替换*。

  for (int i = 0; i < theWord.length(); i++) {
     if (theWord.charAt(i) == usersInput) {
        board.setCharAt(i, usersInput);
     }
  }
  System.out.println(board.toString());

这会产生"e**e*"