Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 删除重复字符,保留顺序_Java_String - Fatal编程技术网

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

Java 删除重复字符,保留顺序,java,string,Java,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=

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

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);
}
String-uenterepetisjon(String-tekst){
b串;
char[]tekstArray=tekst.toCharArray();
char[]tilTekst=新字符[tekstaray.length];
对于(int i=0;i请尝试下一个:

String utenRepetisjon(String tekst) {
    String str = "";
    for(char ch : tekst.toCharArray()) {
        if (str.indexOf(ch) == -1) {
            str += ch;
        }
    }
    return str;
}
试试下一个:

String utenRepetisjon(String tekst) {
    String str = "";
    for(char ch : tekst.toCharArray()) {
        if (str.indexOf(ch) == -1) {
            str += ch;
        }
    }
    return str;
}
这是密码。 使用hashmap

 String tekst = "aababbabbac";
    char[] testArray = tekst.toCharArray();
    Hashtable<String, String> hash = new Hashtable<String, String>();
    for (char c : testArray) {
        if (!hash.containsKey("" + c)) {
            hash.put("" + c, "1");
        }
    }
    String dups = "";
    for (String key : hash.keySet()) {
        dups+=key;
    }
    System.out.println(dups);
String-tekst=“aababbac”;
char[]testArray=tekst.toCharArray();
Hashtable hash=新的Hashtable();
用于(字符c:testArray){
如果(!hash.containsKey(“+c)){
hash.put(“+c,”1”);
}
}
字符串dups=“”;
for(字符串键:hash.keySet()){
dups+=密钥;
}
系统输出打印项次(dups);
这是代码。 使用hashmap

 String tekst = "aababbabbac";
    char[] testArray = tekst.toCharArray();
    Hashtable<String, String> hash = new Hashtable<String, String>();
    for (char c : testArray) {
        if (!hash.containsKey("" + c)) {
            hash.put("" + c, "1");
        }
    }
    String dups = "";
    for (String key : hash.keySet()) {
        dups+=key;
    }
    System.out.println(dups);
String-tekst=“aababbac”;
char[]testArray=tekst.toCharArray();
Hashtable hash=新的Hashtable();
用于(字符c:testArray){
如果(!hash.containsKey(“+c)){
hash.put(“+c,”1”);
}
}
字符串dups=“”;
for(字符串键:hash.keySet()){
dups+=密钥;
}
系统输出打印项次(dups);


看看这个链接:你的代码应该如何工作?tilTekst是用与tekst相同的长度创建的,这在你的问题中没有意义,因为返回的字符串通常较小。看看这个链接:你的代码应该如何工作?tilTekst是用与tekst相同的长度创建的,这在你的问题中没有意义em,因为返回的字符串通常较小。使用
StringBuilder
或字符数组会更好。但它可以工作。+1是一个优雅的解决方案。很好,很短的解决方案。但是当tekst很长时,它可能会遇到臭名昭著的字符串连接问题。StringBuilder无法工作,因为它没有索引(char))建议:使用StringBuilder进行连接,并编写一个助手方法“contains”(StringBuilder,char)“。使用
StringBuilder
或字符数组会更好。但它可以工作。+1是一个优雅的解决方案。很好,很短的解决方案。但是当tekst很长时,它可能会遇到臭名昭著的字符串连接问题。StringBuilder无法工作,因为它没有索引(char))建议:使用StringBuilder进行连接,并编写一个助手方法“contains(StringBuilder,char)”。该方法打印的是bac而不是abc。您需要保持原始单词中字母的顺序(而不是下拉列表).Ya.我以为他只想过滤重复项…谢谢你的否定!!顺便说一句,我不是反对者。同意我评论的人?更改为
java.util.LinkedHashSet
for将保持元素插入的顺序。这将打印bac而不是abc。你需要保持原始单词中字母的顺序(不是下行投票者)。是的。我以为他只想过滤重复项…谢谢你的否定!!顺便说一句,我不是下行投票者。同意我评论的人?更改为
java.util.LinkedHashSet
,以保持插入元素的顺序。