2016-12-16 2 views
-3

を用いて繰り返した文字列を検索するためにJavaプログラムを書きたいここに私のコードは、Javaで来る:私はnの値を与えると私は文字列の配列

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"); 
      }  
    } 
} 

} 

5つののみ4入力は、コンパイラによって得ているとし、 else部分は動作しています。解決策を教えてください。

+1

を[宿題の問題を持つ学生への公開書簡](http://meta.softwareengineering.stackexchange.com/questions/ 6166 /学生に手紙を書いた手紙の問題) – byxor

+0

もう少し説明できますか?予想される出力を追加しますか? –

答えて

0

あなたはとてもあなたがすべての配列をチェックしないようにしたい場合は、使用することができます.equals

if (s[i].equals(s[i + 1])) { 
    System.out.println(s[i]); 
} else { 
    System.out.println("not"); 
} 

を使用する必要があり、

を2つの文字列を比較すること==を使用していて、これは、Javaで使用されていないため

if (s[i].equals(s[i + 1])) { 
    System.out.println(s[i]); 
    break(); 
} else { 
    System.out.println("not"); 
} 

これはあなたを助ける必要がありますので、あなたのようなループを終了するbreak();

+0

重複した質問に再度回答するのではなく、フラグを立てる必要があります。 – byxor

1

あなたはこれまであなたが持っているものに変更、配列を埋めた後:だけでなく、2行に同じの、

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"); 
     } 
    } 
}