我想写一个java程序,用字符串数组找到重复的字符串

时间:2016-12-16 13:28:45

标签: java

这是我在java中的代码:

import java.util.Scanner;

public class repetedstring 
{
    public static void main(String[] args) 
    {
      int n = 0;
      Scanner a=new Scanner(System.in);
      System.out.println("Enter the value of n:");
      n=a.nextInt();
      String s[]=new String[n];
      for (int i = 0; i <n; i++) 
      {
          s[i]=a.nextLine();    
      }
      for (int i = 0; i<n-1 ; i++) 
      {
          if(s[i]==s[i+1])
          {
              System.out.println(s[i]);
          }
          else
          {
              System.out.println("not");
          }     
    }
}

}

如果我将n的值设为5,则编译器只获得4个输入,而else部分仅起作用。请给我一些解决方案。

1 个答案:

答案 0 :(得分:1)

填满阵列后,更改您拥有的内容:

ArrayList<String> strings = new ArrayList();
for(String str : s){
    if(strings.contains(str){
        System.out.println(str);
    } else {
        strings.add(str);
        System.out.println("not");
    }
}

这将检查数组中任何位置的重复字符串,而不是连续两行中的重复字符串 如果您需要使用数组并且无法使用ArrayList,请尝试使用:

for(int i = 0; i < s.length; i++){
    for(int j = i + 1; j < s.length; j++){
        if(s[i].equals(s[j]){
            System.out.println(s[i]);
        } else {
            System.out.println("not");
        }
    }
}