2017-03-03 16 views
-1

配列内に文字列要素を見つける必要がありますが、確認すると、その文字列要素が見つからない場合でも常に見つかるようになります。私はメソッドを呼び出そうとしています。リニア検索配列文字列

String name = ""; 
    boolean result = false; 




    if (option == 5) 
      { 
     System.out.println("Please enter a students name"); 
     name = input.next(); 

     linearSearch(student); 


     if (result = true) 
     {System.out.println(name+" found in element ");} 

     else 
     {System.out.println(name+" not found in element ");} 


    } 


public static boolean linearSearch(String b[]) 
{ 
String key = null; 
boolean searchReturn = false; 
for(int i = 0; i < b.length; i++) 
{ 
    //if key is found - return position of key i.e. n 
    if(b[i] == key) 
    searchReturn = true; 
} 

return searchReturn; 
+3

を試してみてください。 – f1sh

+0

文字列の比較:http://stackoverflow.com/q/513832/335858 – dasblinkenlight

+1

3番目のバグは、実際には 'name'を使用していないのに対し、' null'である 'key'と常に比較します。 –

答えて

0

まずあなたがif(result == true){} //you performing a assignment.

+0

また、学生変数はどこから来ましたか? – Remario

+0

私の文字列配列の名前、私のメソッドをif文に呼び出す –

1

文字列の平等を呼び出す必要がString.equals(STR)メソッドでチェックする必要があります。

は ``場合(結果=真) ``場合(結果== TRUE)でなければならない ``または単に ``(結果)場合

for(int i = 0; i < b.length; i++) 
    { 
     //if key is found - return position of key i.e. n 
     if(b[i].equals(name)) 
     searchReturn = true; 
    } 
+0

このようにすると、正しいものであっても見つからないと戻ってきます –