字符串之间的字符比较

时间:2017-03-18 10:10:45

标签: java

我的目标是编写方法,检查字符串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”

2 个答案:

答案 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()方法获得相同的结果。