Я использую приглашение Windows MSDOS для передачи в файл ... это обычный файл со словами. (Не как abc, def, ghi..etc)
Я пытаюсь написать программу, которая подсчитывает, сколько раз каждая пара слов появляется в текстовом файле. Пара слов состоит из двух последовательных слов (то есть слова и слова, которое непосредственно следует за ним). В первом предложении этого абзаца слова «считает» и «как» представляют собой пару слов.
То, что я хочу, чтобы программа сделала, это введите:
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
Хотя мой вклад не будет таким. Мой вклад будет больше похож на:
"Ожидается, что Сиэтл Амазонком отчитается"
так что мне даже нужно проверить на "abc"?
МОЯ БОЛЬШАЯ проблема - добавить ее на карту ... так что я думаю
Я думаю, мне нужно использовать карту карты? Я не уверен, как это сделать?
Map<String, Map<String, Integer>> uniqueWords = new HashMap<String, Map<String, Integer>>();
Я думаю, что карта выдаст мне этот вывод: это именно то, что я хочу ..
Key | Value number of times
--------------------------
abc | def, ghi, jkl 3
def | jkl, mno 2
если эта карта верна, в моей ситуации, как я могу добавить к ней из файла?
Я пробовал:
if(words.contain("abc")) // would i even need to test for abc?????
{
uniqueWords.put("abc", words, ?) // not sure what to do about this?
}
это то, что у меня есть.
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>();
Map<String, Map<String, Integer>> uniquWords = new HashMap<String, Map<String, Integer>>();
System.out.println("project 1\n");
while (sc.hasNext())
{
word = sc.next();
word = word.toLowerCase();
if (word.matches("abc")) // would i even need to test for abc?????
{
uniqueWords.put("abc", word); // syntax incorrect i still need an int!
}
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...");
}
}
Я надеюсь, что кто-то может мне помочь, потому что я бьюсь головой и уже несколько недель не учу ничего .. Спасибо ...