如何输入一个句子,以便程序将该句子识别为单个单词?

时间:2011-03-14 11:04:02

标签: java

让我说我输入:'狗是哺乳动物'

我想在文本文档中搜索这句话。我如何在java中做到这一点?

    System.out.println("Please enter the query  :");
    Scanner scan2 = new Scanner(System.in);
    String word2 = scan2.nextLine();
    String[] array2 = word2.split(" ");

此代码段接受字符串'dog is mammal'并分别处理每个令牌。

例如:'狗是哺乳动物'

>

>

>

>

哺乳动物

>

>

我想将输入处理为

狗是哺乳动物

>

>

我不希望它单独处理它。我希望它将它作为单个字符串处理并查找匹配项。任何人都可以让我知道我缺少的地方吗?

3 个答案:

答案 0 :(得分:3)

如果要将String作为单个文本处理,为什么要将字符串拆分为单词。我只会使用您拥有的原始word2,即整个文本AFAICS

编辑:如果我跑

System.out.println("Please enter the query  :");
Scanner scan2 = new Scanner(System.in);
String word2 = scan2.nextLine();
System.out.println(">"+word2+"<");

我得到了

Please enter the query  :
dog is mammal
>dog is mammal<

输入不会被分解。

答案 1 :(得分:0)

直接在文件中找到word2,如果您已解析整个文件,则在文件中使用字符串indexof(word2)

答案 2 :(得分:0)

在阅读时简单地将它们连接起来:

public String scanSentence() {
    Scanner scan2 = new Scanner(System.in);
    StringBuilder builder = new StringBuilder();
    String word2;
    //I do not know how you want to terminate input, so let it be END word.
    //If you will be reading from file - change it to "while ((word2 = scan2.nextLine()) != null)"
    //Notice the "trim" part
    while (!(word2 = scan2.nextLine().trim()).equals("END")) { 
        builder.append(word2);
        builder.append(" ");
    }

    return builder.toString().trim();
}