Скажем, у вас есть стартовый String
, такой как Italia
.
Пользователь вводит букву i
, и что должно произойти, это
------ > I---i-
Давайте начнем с преобразования предполагаемого String
в пунктирную версию
final String toBeGuessed = "Italia"; // Italia
final String dashed = toBeGuessed.replaceAll(".", "-"); // ------
Теперь пользователь вводит i
в качестве угаданного письма. Мы преобразуем его в нижний регистр для последующего сравнения.
final char letter = Character.toLowerCase('i');
Что нам нужно сделать, это обновить пунктирную String
, и для этого мы будем использовать StringBuilder
.
Использование StringBuilder
позволяет нам устанавливать отдельные символы.
// Create the StringBuilder starting from ------
final StringBuilder sb = new StringBuilder(dashes);
// Loop the String "Italia"
for (int i = 0; i < toBeGuessed.length(); i++) {
final char toBeGuessedChar = toBeGuessed.charAt(i);
// Is the character at the index "i" what we are looking for?
// Remember to transform the character to the same form as the
// guessed letter, maybe lowercase
final char c = Character.toLowerCase(toBeGuessedChar);
if (c == letter) {
// Yes! Update the StringBuilder
sb.setCharAt(i, toBeGuessedChar);
}
}
// Get the final result
final String result = sb.toString();
result
будет I---i-
.