Как вы находите наиболее встречающиеся слова в файле с пятью или более буквами, используя программу ввода/вывода? Это код стартера, который у меня есть.
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Scanner;
public class FileIOtest {
/**
* @param args
* @throws FileNotFoundException
*/
public static void main(String[] args) throws FileNotFoundException {
// TODO Auto-generated method stub
File file = new File ("myfile.txt");
Scanner inputFile = new Scanner(file);
while(inputFile.hasNext())
{
String str =inputFile.nextLine();
System.out.println(str);
}
inputFile.close();
}
}
Я бы сделал hashmap
который содержит пару ключ-значение между словом и счетчиком для количества вхождений.
Map<String, Integer> myMap = new HashMap<String, Integer>();
Вы должны разделить каждую строку на пробел, а затем перебирать массив разделенной строки. Затем вы можете проверить, имеет ли слово 5 или более символов и увеличивает счетчик в вашем hashmap
String str = inputFile.nextLine();
String[] parts = str.split(" ");
for(int x = 0; x < parts.length; x++)
{
String word = parts[x];
if(word.length() >= 5)
{
if(myMap.containsKey(word))
{
myMap.put(word, myMap.get(word) + 1);
}
else
{
myMap.put(word, new Integer(1));
}
}
}
Затем в самом конце вы можете получить внутренний набор HashMap
с помощью myMap.entrySet()
. Затем перейдите через этот набор, чтобы найти первый, второй, третий, ect наиболее распространенные или наименее распространенные слова.