Я очень новичок в Java, поэтому, пожалуйста, со мной.Программа Java - статистика Word
Я создал программу Java, которая выходит и возвращает результаты поиска из различных социальных сетей API на основе текстового файла с ключевыми словами и записывает возвращенные результаты в другой текстовый файл.
Теперь я пытаюсь создать класс другого класса, который будет сканировать текстовый файл результатов поиска и возвращать статистику о том, сколько раз «ключевые слова» были найдены в результатах поиска. В основном я пытаюсь запустить поиск по файлу keywords.txt.
Я пытался заставить этот код работать, но я могу получить его только для того, чтобы вернуть все слова, а не только файлы из файла keywords.txt.
Я попытался получить вход StreamReader для работы, но безрезультатно. Любая помощь будет принята с благодарностью.
package search;
import java.util.*; // Provides TreeMap, Iterator, Scanner
import java.io.*; // Provides FileReader, FileNotFoundException
public class SearchResults
{
public static void main(String[] args)
{
TreeMap<String, Integer> frequencyData = new TreeMap<String, Integer>();
readWordFile(frequencyData);
printAllCounts(frequencyData);
}
public static int getCount(String word, TreeMap<String, Integer> frequencyData)
{
if (frequencyData.containsKey(word))
{ // The word has occurred before, so get its count from the map
return frequencyData.get(word); // Auto-unboxed
}
else
{ // No occurrences of this word
return 0;
}
}
public static void printAllCounts(TreeMap<String, Integer> frequencyData)
{
System.out.println("-----------------------------------------------");
System.out.println(" Occurrences Word");
for(String word : frequencyData.keySet())
{
System.out.printf("%15d %s\n", frequencyData.get(word), word);
}
System.out.println("-----------------------------------------------");
}
public static void readWordFile(TreeMap<String, Integer> frequencyData)
{
Scanner wordFile;
String word; // A word read from the file
Integer count; // The number of occurrences of the word
try
{
wordFile = new Scanner(new FileReader("SearchResults.txt"));
}
catch (FileNotFoundException e)
{
System.err.println(e);
return;
}
while (wordFile.hasNext())
{
// Read the next word and get rid of the end-of-line marker if needed:
word = wordFile.next();
// Get the current count of this word, add one, and then store the new count:
count = getCount(word, frequencyData) + 1;
frequencyData.put(word, count);
}
}
}
Если я правильно понял, возможно, вы хотите добавить еще один оператор if, который проверяет, является ли count! = 0, и только затем добавьте его на карту frequencyData? – BeRecursive
Что именно вы пробовали? В этом коде есть нулевые строки, относящиеся к keywords.txt. Это звучит очень подозрительно, когда вы заявляете, что пытаетесь заставить его работать, не имея ни одной строки, что было бы доказательством этого. –