Как изменить значения 2+ в массиве символов? - PullRequest
0 голосов
/ 04 мая 2019

Я превратил String в массив char и мне стало интересно, есть ли способ заменить 2 или более значений в массиве?

Я работаю над игрой в угадайку строк, которая представляет собой домашнее задание, пользователь вводит предложение или слово, затем пользователь вводит букву, если буква является частью ввода, а затем предположим, что строчка обновляется и заменяет ее ' ? с письмом угадал пользователь.

Например:

User enters: racer

Original String: racer
Guess String:?????
Please guess a character

User enters: a

Original String: racer
Guess String:?a???
String input = "This is a string";
input = input.toLowerCase();
int inputLength = input.length();
System.out.println("You entered: " + input
            + "\n" + "The string length is: " + inputLength);
String answerString = "?".repeat(inputLength);
int answerStringLength = answerString.length();
System.out.println(answerString);
System.out.println(answerStringLength);

System.out.println("Guess a letter");
String guess = scan.nextLine();
System.out.println(guess);
int guessLength = guess.length();
System.out.println(guessLength);
while (guessLength != 1) {
    guess = scan.nextLine();
    guessLength = guess.length();
    System.out.println(guessLength);
}
System.out.println(guess);
String guessRepeat = guess.repeat(3);
char guessChar=guessRepeat.charAt(2);
System.out.println(guessChar);

int checkGuess = input.indexOf(guess);

char[] answerStringChars = answerString.toCharArray();
answerStringChars[checkGuess]=guessChar;
String newAnswerString = String.valueOf(answerStringChars);
System.out.println(newAnswerString);
If the guessed letter is 'i'
Actual Results:
??i?????????????
Expected Results:
??i??i??????i???

1 Ответ

0 голосов
/ 04 мая 2019

Попробуйте этот цикл, чтобы заменить все значения, а не только первое:

char[] answerStringChars = answerString.toCharArray();
for (int i = 0; i < answerString.length(); i++) {
    if (input.charAt(i) == guessChar) {
        answerStringChars[i] = guessChar;
    }
}
String newAnswerString = String.valueOf(answerStringChars);

Это должно сделать работу.

...