我正在编写一个代码,用户输入十个存储在数组中的字符串和一个搜索键。代码必须基于搜索关键字运行线性搜索。到目前为止,这就是我所拥有的:
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);
}
}
没有编译错误,也没有发现运行时错误。但是,存在巨大的逻辑错误。当我在数组中搜索IS PRESENT的元素时,它表示搜索不成功。我该如何解决这个问题? TIA。
答案 0 :(得分:2)
删除以下行:
string = array;
search = a;
编辑:这两行将string
的引用设置为空字符串数组(array
),将search
的引用设置为空字符串( a
)。这意味着string
和search
现在与array
和a
具有相同的内容,这是空的。
答案 1 :(得分:0)
检查以下一行:
string = array;
应该是相反的。