如何使用replace和charAt方法替换java字符串中多个出现的字符

时间:2018-01-30 21:14:45

标签: java

这是我的第二个问题,仍然是初学者,所以请耐心等待 我有一个非常基本的刽子手类型游戏的代码。我已经将字符更改为“ - ”,我能够获得输入的索引,但我无法将“ - ”转换回输入的字符。登记/> 它是一个不完整的代码。

    String input;
   String encrypt =  line.replaceAll("[^ ]","-");
   System.out.println(encrypt);

   for (int j=0;j<10;j++){ //Asks 10 times for user input
      input = inpscanner.nextLine();
      int check = line.indexOf(input);
      while (check>=0){
          //System.out.println(check);
          System.out.println(encrypt.replaceAll("-",input).charAt(check));
          check = line.indexOf(input,check+1);
      }

以下是它的样子:
  你有10次猜测电影的机会 ------
Ø
Ø
Ø
大号
大号
你不要重复,因为你不在电影中。而'o'是2次 我想像loo---(looper)那样 如果是变量,我怎么能这样做"[^ ]","-"

1 个答案:

答案 0 :(得分:0)

这可能会有所帮助。

public static void main(String[] args) {
    String line = "xyzwrdxyrs";
    String input;
    String encrypt =  line.replaceAll("[^ ]","-");
    System.out.println(encrypt);
    System.out.println(line);
    Scanner scanner = new Scanner(System.in);
    for (int j=0;j<10;j++) { //Asks 10 times for user input
        input = scanner.nextLine();
        //int check = line.indexOf(input);
        int pos = -1;
        int startIndex = 0;
        //loop until you all positions of 'input' in 'line'
        while ((pos = line.indexOf(input,startIndex)) != -1) {
            //System.out.println(check);
            // you need to construct a new string using substring and replacing character at position
            encrypt = encrypt.substring(0, pos) + input + encrypt.substring(pos + 1);
            //check = line.indexOf(input, check + 1);
            startIndex = pos+1;//increment the startIndex,so we will start searching from next character
        }
        System.out.println(encrypt);
    }
}