繁体   English   中英

字符串之间的字符比较

[英]character comparison between string

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

请尝试以下操作:

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方法调用即可。

按照您的逻辑,您正在比较整个字符串 ,而是需要按字符逐个检查每个字符,如下面的代码所示,并带有注释:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM