删除重复的字符,保留顺序

pat*_*ski 0 java string

我正在尝试编写一个代码,该代码接收String并删除其中的重复字符String.

String utenRepetisjon(String tekst) {

    String b;

    char[] tekstArray = tekst.toCharArray();
    char[] tilTekst = new char[tekstArray.length];

    for(int i=0; i<tekstArray.length; i++) {
        for(int j=0; j<tekst.length(); j++) {
            if(tekstArray[i] != tekst.charAt(j)) {
                tilTekst[i] = tekstArray[i];
            }
        }
    }
    return b = new String(tilTekst);
}
Run Code Online (Sandbox Code Playgroud)

例如,如果tekst = "aababbabbac",它应该返回"abc".到目前为止,我的代码只返回它给出的相同的tekst ..

Pau*_*gas 5

尝试下一个:

String utenRepetisjon(String tekst) {
    String str = "";
    for(char ch : tekst.toCharArray()) {
        if (str.indexOf(ch) == -1) {
            str += ch;
        }
    }
    return str;
}
Run Code Online (Sandbox Code Playgroud)

  • 使用`StringBuilder`或字符数组会更好.但它的确有效. (2认同)
  • 很好,简短的解决方案 但是当tekst很长时,它可能会受到臭名昭着的String-concatenation问题的影响.StringBuilder不起作用,因为它没有indexOf(char). (2认同)