我的目标是编写方法,检查字符串2(密码)中是否存在字符串1(字母)中的任何字母,如果是,则将其替换为“X”
public String hiddenWord() {
String password = "abcde";
String letters = "ad";
String empty = "";
for(int i =0; i <= password.length()-1; i++){
if(letters.contains(password.substring(i))){
empty += password.substring(i);
}else{
empty += "X";
}
}
return empty;
}
你能问我一个问题吗?程序返回结果“XXXXX”
答案 0 :(得分:0)
尝试以下方法:
String password = "abcde";
String letters = "ad";
String empty = password;
for(int i =0; i <= letters.length()-1; i++){
empty = empty.replace(letters.charAt(i), 'X');
}
System.out.println(empty);
您不需要复杂的逻辑来检查,替换和附加字符。简单的字符串replace
方法调用就可以了。
答案 1 :(得分:0)
在您的逻辑中,您正在比较整个字符串,而不是需要逐个检查每个字符,如下面的代码所示:
public static String hiddenWord() {
String password = "abcde";
String letters = "ab";
StringBuilder empty = new StringBuilder();
for (int i = 0; i <= password.length() - 1; i++) {
//check character is found and replace with X
if(i<letters.length() && letters.charAt(i) == password.charAt(i)) {
empty.append("X");
}
//otherwise keep the same character
else if(i<letters.length() && letters.charAt(i)!= password.charAt(i)){
empty.append(password.charAt(i));
}
}
return empty.toString();
}
或者,您也可以使用String
API replace()
方法获得相同的结果。