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

标签 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 和 kw2,然后将调用 top5search。如果“or”不存在,top5search 将只搜索 kw1 而 kw2 将为空。如果存在“or”,则该方法将使用 kw1 和 kw2。

我可以知道如何更好地简化确定上述案件的过程吗?如上面的主要方法所示,我的想法是将所有用户输入添加到一个 arrlist 中并进行 kw1 和 kw2 提取。

提前致谢, ZP

最佳答案

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

另一种方法可能是只读入整行并将其拆分为“或”。

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

此方法也允许多个连续的“或”语句。

关于java - 迷你搜索引擎程序主方法的用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33637296/

相关文章:

java - Java中列表的动态列表

java - 坐标布局中 enterAlwaysCollapsed 和 exitUntilCollapsed 滚动标志的区别

java - 我如何在 java 中实现多线程来处理 200 万个文本文件?

java - 将单个字节与字节数组进行比较

c# - 在 C# 中安全地解析 XML

java - 在 Arraylist 中添加和获取字符串数组

java - 是否可以在适用于 Linux (WSL) 的 Windows 子系统 - Ubuntu 上安装 IBM java?

java - 在 AppEngine for Java 中,如何获取实例 : e. g 的名称。实例.appspot.com

regex - 使用 RegEx 查找字符串中特定文本后的数字

java - 标记上存在语法错误 "product1. "此标记后应有 VariableDeclaratorId