首页 > 解决方案 > 尝试用问号替换字符串中的字母,但继续用问号替换空格

问题描述

我正在尝试写一些东西来将字符串中的所有字母替换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('?');
            }
    }
}

我的输出是:????????????????????????????????????

有什么建议吗?

标签: java

解决方案


目前你只打印'?如果当前字符应替换为“?”,否则不打印任何内容。

您还应该打印未被“?”替换的原始字符:

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);
    }
}

推荐阅读