Как заменить все символы в строке ввода пользователя, кроме одного - PullRequest
5 голосов
/ 29 октября 2011

Я в настоящее время нахожусь в классе Java начального уровня, и я работаю над классическим назначением предположения фразы. Объект предназначен для одного пользователя, чтобы ввести секретную фразу, а другой, чтобы угадать ее по одной букве за раз. Между догадками фраза должна отображаться как все знаки вопроса, кроме букв, которые были угаданы правильно. Наш класс действительно охватил только некоторые очень базовые методы, операторы if-else и циклы до этого момента, но я пытаюсь исследовать некоторые строковые методы, которые могут сделать это немного проще.

Я знаю о методах replace(), replaceAll() и contains(), но мне было интересно, есть ли метод, который позволяет заменять все, кроме одного символа, по вашему выбору в строке.

Заранее спасибо

1 Ответ

16 голосов
/ 29 октября 2011

Самый простой способ - это использовать String.replaceAll():

String out = str.replaceAll("[^a]", "?");

Это оставит все буквы a без изменений и заменит все остальные символы на вопросительных знаках.

Это может быть легко расширено до нескольких символов, например:

String out = str.replaceAll("[^aeo]", "?");

Это сохранит все буквы a, e и o и заменит все остальное.

...