我正在尝试删除字符串数组中的重复项,尽管它不起作用, 我使用Split String将我的字符串放入一个数组中,然后使用计数器方法来计算重复项。我不明白我做错了什么
public class Program {
public static void uniqWords(String s){
String[] sentence = s.split(" ");
int[] counter = new int[sentence.length];
for(int i=0; i< sentence.length; i++){
for(int j=i+1; j<sentence.length; j++){
if(sentence[i] == sentence[j] ){
counter[i] =1;
}
}
}//
for(int i=0; i<counter.length; i++){
System.out.print(counter[i] + ",");
}
for(int i =0; i<sentence.length; i++){
if(counter[i] == 1){
sentence[i] = "";
}
}
//print
for(int i=0; i<sentence.length; i++){
System.out.print(sentence[i]);
System.out.print(" ");
}
//
}
public static void main(String[] args) {
// TODO Auto-generated method stub
uniqWords("Spring in in Paris");
}
}
答案 0 :(得分:5)
最关键的问题是您尝试使用==
比较两个字符串的值,这将无效。您需要在其中一个字符串上使用equals()
方法将其与另一个字符串进行比较。
答案 1 :(得分:1)
将数组转换为Set。一个集合不允许重复,因此它将被删除:
String[] sentence = s.split(" ");
Set<String> set = new HashSet<String>(Arrays.asList(sentence));