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
,以保持插入元素的顺序。