0

这是我到目前为止的代码

import java.util.*;
import java.io.*;
public class USconstitution   
{
  public static void main(String [] args) throws Exception
  {
     Scanner inFile = new Scanner(new File("constitution.txt"));
     int x = 0;
     int keyword1 = 0;
     Scanner keyboard = new Scanner(System.in);
     System.out.println("Enter a word from the keyboard");
     String input = keyboard.next();
     while(inFile.hasNext())
     {
        String word = inFile.next();
        x++;
        if(input.equalsIgnoreCase(word))
           keyword1++;
     }
     //System.out.println("\n" + x);
     System.out.println("The constitution has " + x + " words");
     System.out.println("The first keyword shows up " + keyword1 + " times in the  

     constitution");
  }
}

到目前为止的输出=

从键盘输入一个单词

总统

宪法有4610字

第一个关键字在宪法中出现了 20 次


我对这个程序的目标是搜索给我的包含美国宪法的文本文件。

第一部分只是计算文本文件中有多少单词,接下来我要做的是允许人们搜索某些关键字并让它搜索文本文件并说出该单词出现的次数。

我正在考虑让提示询问用户希望输入哪些关键字,并让它使用 split 方法将每个单词创建为单独的字符串并在文件中搜索它,然后输出它出现的次数。虽然我不太确定如何解决这个问题,但我们将不胜感激任何帮助!

4

2 回答 2

1

尝试这个:

public static void main(String[] args)
{       
    String text = "the quick brown fox jumps fox fox over the lazy dog brown";
    String[] textArray = text.split(" ");
    String[] keysToSearch = {"the", "fox", "dog"};
    int count = 0;
    System.out.println(text);

    for(String key: keysToSearch)
    {                       
        for(String s : textArray)
        {
            if(key.equals(s))
            {
                count++;
            }               
        }
        System.out.println("Count of ["+key+"] is : "+count);
        count=0;
    }
}

输出:

the quick brown fox jumps fox fox over the lazy dog brown
Count of [the] is : 2
Count of [fox] is : 3
Count of [dog] is : 1
于 2014-02-21T13:57:41.467 回答
0

将检查 main 方法的代码放在一个单独的方法中,该方法将单个关键字作为参数。然后你可以拆分从控制台给出的输入字符串使用

String[] keywords = input.split(" "); // will split at spaces

然后您所要做的就是遍历数组中的所有关键字

for(int  i = 0; i < keywords.length; i++){

    yourCountMethod(keywords[i]);

}

这只是一般的想法,显然您必须更改代码以适应。

希望有帮助:)

于 2014-02-21T13:47:38.593 回答