我正在尝试写一些东西来替换字符串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('?');
}
}
}
我对此的输出是:????????????????????????????????????
有什么建议吗?
答案 0 :(得分:3)
当前您只打印'?'如果当前字符应替换为'?',否则不打印任何内容。
您还应该打印不替换为'?'的原始字符:
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);
}
}
答案 1 :(得分:0)
public class Prog5 {
public static void main(String[] args) {
String msg = "FIG PKWC OIE GJJCDVKLC MCVDFJEHIY BIDRHYO.";
//String decryptKey = "QWERTYUIOPASDFGHJKLZXCVBNM";
for (int i = 0; i < msg.length(); i++) {
if (Character.isLetter(msg.charAt(i))) {
System.out.print("?");
}else {
System.out.print(msg.charAt(i));
}
}
}
}