public class HashMapsTest {
static Scanner sc = new Scanner(System.in);
public static void main(String[] args) throws FileNotFoundException {
sc = new Scanner(new FileInputStream("TextFile")); // read a file
ArrayList<ArrayList<String>> words = new ArrayList<ArrayList<String>>(); // list to put the words inside
StringBuffer sb = new StringBuffer(); // string buffer to read the file
String[] protasi = null;
while (sc.hasNextLine()) {
sb.append(sc.nextLine() + " ");
}
protasi = sb.toString()
.split("!| !|! | ! |\\? | \\?| \\? |\\?|\\.|\\. | \\.| \\."); // split the string into sentences
String[][] leksis = new String[protasi.length][];
for (int i = 0; i < protasi.length; i++) {
leksis[i] = protasi[i].split(" , |,| ,| ,| - |-| -|- | -- |--| --|-- | : |:| :|: | ; |;| ;|; | | | ' |'|"
+ " '|' | \" |\"| \" | \"| ` |`| `|` "); // split the sentences into words
}
// take the table with the words and put it into a list
for (int i = 0; i < protasi.length; i++) {
String x = "";
ArrayList<String> line = new ArrayList<String>();
for (int j = 0; j < leksis[i].length; j++) {
x = leksis[i][j];
if (x.length() != 0) {
line.add(x);
}
}
if (line.size() != 0) {
words.add(line);
}
}
HashMap<String, HashMap<String, Integer>> outhm = new HashMap<String, HashMap<String, Integer>>();
HashMap<String, Integer> inhm = new HashMap<String, Integer>();
for (int i = 0; i < words.size(); i++) {
for (int j = 0; j < words.get(i).size(); j++) {
if (!inhm.containsKey(words.get(i).get(j))) {
inhm.put(words.get(i).get(j), 1);
} else {
inhm.put(words.get(i).get(j), inhm.get(words.get(i).get(j)) + 1);
}
if (!outhm.containsKey(words.get(i).get(j))) {
outhm.put(words.get(i).get(j), inhm);
} else {
outhm.put(words.get(i).get(j), inhm);
}
}
}
System.out.println(outhm.toString());
}
}
Я хочу создать хэш-карту, которая возвращает этот вывод:
{’man’: {’i’: 3, ’am’: 3, ’a’: 2, ’больной’: 1, ’злобный’: 1, ’a’: 1,
’Непривлекательный’: 1}, ’liver’: {’i’: 1, ’believe’: 1, ’my’: 1, ’is’: 1,
’Больной’: 1}, ...}
Вместо этого вывода я получаю:
{ails = {ails = 1, about = 1, для = 1, I = 5, больной = 1, верить = 1, делать = 1, не = 1,
и = 1, я = 1, непривлекательный = 1, человек = 3, злобный = 1, все = 1, а = 2, болезнь = 1,
печень = 1, ничего = 1, однако = 1, есть = 1, am = 3, my = 2, an = 1, at = 1, что = 1,
больной = 1, знаю = 2, уверен = 1}, о = {ails = 1, о = 1, для = 1, I = 5,
больной = 1, верить = 1, делать = 1, а не = 1 и = 1, мне = 1, непривлекательно = 1, человек = 3,
злобный = 1, все = 1, а = 2, болезнь = 1, печень = 1, ничего = 1, однако = 1,
is = 1, am = 3, my = 2, an = 1, at = 1, what = 1, больной = 1, знать = 2,
определенная = 1} ...}
ввод следующий:
введите описание изображения здесь