Я использую MSDOS для передачи в файл ... Я пытаюсь написать программу, которая подсчитывает, сколько раз каждая пара слов появляется в текстовом файле. Пара слов состоит из двух последовательных слов (то есть слова и слова, которое непосредственно следует за ним). В первом предложении этого абзаца слова «считает» и «как» представляют собой пару слов.
Я хочу, чтобы программа выполняла следующие действия:
abc def abc ghi abc def ghi jkl abc xyz abc abc abc ---
Должен выдать этот вывод:
abc:
abc, 2
def, 2
ghi, 1
xyz, 1
def:
abc, 1
ghi, 1
ghi:
abc, 1
kl, 1
jkl:
abc, 1
xyz:
abc, 1
Кстати: я исключаю "a", "the" и ", которые не имеют ничего общего с парой слов ...
Каков наилучший способ сделать это? пожалуйста, будь хорошим, я новичок в Java ..
это то, что у меня есть ..
import java.util.Scanner;
import java.util.ArrayList;
import java.util.TreeSet;
import java.util.Iterator;
import java.util.HashSet;
public class Project1
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
String word;
String grab;
int number;
// ArrayList<String> a = new ArrayList<String>();
// TreeSet<String> words = new TreeSet<String>();
HashSet<String> uniqueWords = new HashSet<String>();
System.out.println("project 1\n");
while (sc.hasNext())
{
word = sc.next();
word = word.toLowerCase();
if (word.matches("a") || word.matches("and") || word.matches("the"))
{
}
else
{
uniqueWords.add(word);
}
if (word.equals("---"))
{
break;
}
}
System.out.println("size");
System.out.println(uniqueWords.size());
System.out.println("unique words");
System.out.println(uniqueWords.size());
System.out.println("\nbye...");
}
}
Извините за форматирование. Трудно понять это прямо здесь ...