从给定的字符串中删除所有字符

蒙娜·贾拉(Mona Jalal)

如何修改代码,以便删除给定字符串中的另一个字符串中的所有字符(而不仅仅是一个字符串)O(n)如果使用其他数据结构会有所帮助,请也提示。

public static String removeChar(String s, char ch){
    StringBuilder sb= new StringBuilder();
    char[] charArray= s.toCharArray();
    for (int i=0; i<charArray.length; i++){
        if (charArray[i]!=ch) {
            sb.append(charArray[i]);
        }
    }

    return sb.toString();
}

有没有更快的方法呢?

更新:我想写一个新的函数,如 removeAllCharsInSecondStringFromFirstString(String S1, String S2)

蒙娜·贾拉(Mona Jalal)

在dimo的提示和帮助下,我编写了以下解决方案:

public static String removeAllChars(String src, String dst){
    HashSet<Character> chars = new HashSet<>();
    char[] dstCharArray=dst.toCharArray();
    for (int i=0; i<dstCharArray.length; i++){
        chars.add(dstCharArray[i]);
    }
    StringBuilder sb = new StringBuilder();
    char[] srcCharArray = src.toCharArray();
    for (int i=0; i<srcCharArray.length; i++){
        if (!chars.contains(srcCharArray[i])){
            sb.append(srcCharArray[i]);
        }
    }
    return sb.toString();

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章