1

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

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);
    }
}

没有发现编译错误和运行时错误。但是,有一个巨大的逻辑错误。当我搜索数组中存在的元素时,它说搜索不成功。我该如何解决这个问题?

4

2 回答 2

3

删除这些行:

string = array;
search = a;

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

于 2014-12-14T13:22:27.010 回答
0

检查以下行:

string = array;

应该是反的。

于 2014-12-14T13:24:22.510 回答