【发布时间】:2016-10-13 00:17:51
【问题描述】:
问题要求我写一个方法,从原字符串中删除重复字符,返回新字符串。比如原字符串是abracadabra,结果应该是abrcd。
我正在考虑使用 StringBuilder 删除字符,但是当我尝试运行代码时出现了问题。谁能帮我修一下。
public static String eliminateDuplicates(String str){
String result = "";
StringBuilder strings = new StringBuilder(str);
for(int i = 0; i<str.length(); i++){
for(int j = 1; j<str.length();j++){
if(str.charAt(i)==str.charAt(j)){
strings.deleteCharAt(j);
}
}
}
result = strings.toString();
return result;
}
【问题讨论】:
-
在迭代时改变某些东西总是会导致灾难......
-
与其删除,不如考虑构建原始字符串的副本,逐个添加字符,除了跳过已经存在的字符。
StringBuilder没有提供很好的查找字符的方法,因此请考虑使用Set<Character>跟踪其中的内容。
标签: java string stringbuilder