我正在尝试编写一些内容来将字符串 msg
中的所有字母替换为问号。但是,当我运行程序时,它也会用问号替换空格。在我的 if 语句中,我想如果它是字母而不是空格,则替换为 ?。
public static void main(String[] args) {
String msg = "FIG PKWC OIE GJJCDVKLC MCVDFJEHIY BIDRHYO.\n";
int i;
char let;
for (i = 0; i < 43; ++i) {
let = msg.charAt(i);
if ( (Character.isLetter(let)) && ! (Character.isWhitespace(let)) ) {
System.out.print('?');
}
}
}
我的输出是:????????????????????????????????????
有什么建议吗?
最佳答案
目前您只打印“?”是否应将当前字符替换为“?”,否则不打印任何内容。
您还应该打印未替换为“?”的原始字符:
for (i = 0; i < msg.length(); ++i) {
let = msg.charAt(i);
if ( (Character.isLetter(let)) && ! (Character.isWhitespace(let)) ) {
System.out.print('?');
} else {
System.out.print(let);
}
}
关于java - 尝试用问号替换字符串中的字母,但继续用问号替换空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53149305/