如何替换除一个用户输入字符串中的所有字符

awf*_*fle 5 java replace character

我目前正处于入门级Java课程,正在研究经典短语猜测任务.对象是一个用户输入一个秘密短语,另一个用户一次猜一个字母.在猜测之间,短语必须显示为除了正确猜测的字母之外的所有问号.我们的类只覆盖了一些非常基本的方法,if-else语句和循环到目前为止,但我正在尝试研究一些可能使这更容易的字符串方法.

我所知道的replace(),replaceAll()contains()方法,但不知道是否有它允许你替换所有,但在一个字符串您所选择的一个字符的方法.

提前致谢

NPE*_*NPE 16

最简单的方法可能是使用String.replaceAll():

String out = str.replaceAll("[^a]", "?");
Run Code Online (Sandbox Code Playgroud)

这将使所有字母a保持完整,并将用问号替换所有其他字符.

这可以很容易地扩展到多个字符,如下所示:

String out = str.replaceAll("[^aeo]", "?");
Run Code Online (Sandbox Code Playgroud)

这将让所有的字母a,e并且o将取代一切.