迷你搜索引擎程序主要方法的用户输入

时间:2015-11-10 18:48:39

标签: java string arraylist java.util.scanner bufferedreader

我正在编写一个迷你搜索引擎主要方法,搜索方法是: -

public ArrayList<String> top5search(String kw1, String kw2) {}

这是主要的: -

public static void main(String[] args) throws IOException 
{

    LittleSearchEngine zoogle = new LittleSearchEngine();
    String kw1 = null,kw2 = null;
    ArrayList<String> kws = new ArrayList<String>();
    //zoogle.makeIndex("docs.txt","noisewords.txt");

    System.out.println("Khajeet search : ");
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    Scanner sc = new Scanner(br.readLine());

    while(sc.hasNext())
        kws.add((sc.next()));

    kw1 = kws.get(0);
    kw2 = kws.get(kws.indexOf("or") + 1);

    System.out.println(zoogle.top5search(kw1, kw2));
}

用户输入(搜索关键字)将采用字符串形式: -

"kw1 or kw2"

Main将提取kw1&amp;将被“or”和top5search分隔的kw2将被调用。如果“or”不存在,top5search将只搜索kw1,kw2将为null。如果存在“或”,则该方法将使用kw1和kw2。

我是否知道如何更好地简化确定上述案件的程序?我在上面的主要方法中显示的想法是将所有用户输入添加到arrlist中并执行kw1&amp; kw2提取。

提前致谢, ZP

1 个答案:

答案 0 :(得分:1)

这似乎是处理输入的好方法。

另一种方法可能是读取整行并将其拆分为&#34;或&#34; s。

String kws = br.readLine();
String[] words = kws.split(" or ");

kw1 = words[0];
if(words.length > 1)
    kw2 = words[1];
System.out.println(zoogle.top5search(kw1, kw2));

此方法允许多个连续的&#34;或&#34;陈述。