这是我目前的代码
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方法将每个单词创建为单个字符串,然后在文件中搜索该单词然后输出它出现的次数。虽然我不太确定如何解决这个问题,但我们将非常感谢您的帮助!
答案 0 :(得分: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
答案 1 :(得分:0)
从主方法中获取检出的代码,并将其放在一个单独的方法中,该方法将一个关键字作为参数。然后,您可以使用
拆分从控制台给出的输入字符串String[] keywords = input.split(" "); // will split at spaces
然后你要做的就是循环遍历数组中的所有关键字
for(int i = 0; i < keywords.length; i++){
yourCountMethod(keywords[i]);
}
这只是一般性的想法,显然你必须改变代码以适应。
希望有所帮助:)