사용자가 배열에 저장되는 10 개의 문자열과 검색 키를 입력하는 코드 작업을하고 있습니다. 코드는 검색 키를 기반으로 선형 검색을 실행해야합니다. 지금까지 이것이 내가 얻은 것입니다 :Java에서 문자열 선형 검색
import java.io.*;
class linstring
{
String array[] = new String[10];
String a = new String();
public void linsearch(String string[], String search)
{
string = array;
search = a;
int i;
int flag = 0;
for(i = 0; i<10; i++)
{
if (search.equals(string[i]))
{
flag = 1;
break;
}
}
if (flag ==1)
{
System.out.println("Word found at position " +(i+1));
}
else
{
System.out.println("Word not found.");
}
}
public static void main(String args[])throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
linstring obj = new linstring();
System.out.println("Enter any 10 words.");
String enter [] = new String[10];
int i;
for (i = 0; i<10; i++)
{
enter[i] = br.readLine();
}
System.out.println("Enter word to be searched.");
String search1 = br.readLine();
obj.linsearch(enter, search1);
}
}
컴파일 오류가없고 런타임 오류가 없습니다. 그러나 거대한 논리 오류가 있습니다. 배열에있는 요소를 검색하면 검색에 실패했다고 표시됩니다. 어떻게 해결할 수 있습니까? TIA.
이것이 숙제가 아니라면 원시 배열을 잊어 버리고 대신 HashMap/HashSet을 사용하는 것이 좋습니다. 빠르고, 코드가 적으며, 버그가 적습니다. – midor
나는 본다. 좋아, 나는 분명히 HashMap을 사용해 볼 것이다. 고맙습니다! –