java - 尝试用问号替换字符串中的字母,但继续用问号替换空格

标签 java

我正在尝试编写一些内容来将字符串 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/

相关文章:

java - Swing GUI 和翻译器问题

java - Android 中的 MVVM 架构使用 Volley

java - 使用 Jmock 创建一个 mock 来为自己返回一个 null 值

java - 继续循环直到良好的输入?

java - 通过更改变量来设置 ArrayList 中的值会修改 ArrayList 的值

java - 内部类对象错误

java - ArrayList 的 ArrayList

java - NullPointerException 仅适用于某些设备上的动画

java - Hibernate - 检索所有表信息 - 列名、索引、长度并填充为表

java - 验证多层应用程序输入数据的最佳实践