java中的重复字符串数组

时间:2017-02-07 13:48:05

标签: java arrays eclipse

我正在尝试删除字符串数组中的重复项,尽管它不起作用, 我使用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");

    }
}

2 个答案:

答案 0 :(得分:5)

最关键的问题是您尝试使用==比较两个字符串的值,这将无效。您需要在其中一个字符串上使用equals()方法将其与另一个字符串进行比较。

答案 1 :(得分:1)

将数组转换为Set。一个集合不允许重复,因此它将被删除:

    String[] sentence = s.split(" ");
    Set<String> set = new HashSet<String>(Arrays.asList(sentence));