2017-03-03 2 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

은'(결과 = TRUE)가'(== 진정한 결과)'경우이어야 시도하거나''경우 (결과)'. – f1sh

+0

문자열 비교 : http://stackoverflow.com/q/513832/335858 – dasblinkenlight

+1

세 번째 버그는 실제로'name'을 사용하지 않고'null '인'key'와 항상 비교하는 것입니다. –

답변

0

첫째로 당신은 if(result == true){} //you performing a assignment.

+0

또한 학생 변수는 어디에서 왔습니까? – Remario

+0

내 문자열 배열의 이름입니다. im은 if 문에 내 메서드를 호출합니다. –

1

문자열 평등가 String.equals (STR) 방법으로 확인해야 호출해야합니다.

이 경우

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

이렇게하면 올바른 것으로 여겨지는 것처럼 되돌아옵니다. –