在Java中线性搜索字符串

时间:2014-12-14 13:20:15

标签: java arrays search linear

我正在编写一个代码,用户输入十个存储在数组中的字符串和一个搜索键。代码必须基于搜索关键字运行线性搜索。到目前为止,这就是我所拥有的:

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。

2 个答案:

答案 0 :(得分:2)

删除以下行:

string = array;
search = a;

编辑:这两行将string的引用设置为空字符串数组(array),将search的引用设置为空字符串( a)。这意味着stringsearch现在与arraya具有相同的内容,这是空的。

答案 1 :(得分:0)

检查以下一行:

string = array;

应该是相反的。