将文本文件读入哈希映射,并将单词作为键

时间:2016-05-22 22:10:20

标签: java

我有一个文本文件,我正在尝试将其读入一个hashmap。我的问题是我试图用这些词作为键。我四处寻找,找不到解决办法。

所以基本上如果我有一个文本文件"text.txt"包含这个:"This is a sentence."我想制作第一个键为"This"且值为{{1}的单词的哈希映射}}。然后下一个键是{"is", "a", "sentence."},其值为"is",依此类推,直到每个单词都被用作键。

1 个答案:

答案 0 :(得分:1)

你可以这样做:

String input = "This is a sentence.";
String[] split = input.split(" ");
Map<String, String[]> map = new HashMap<>(split.length - 1);
for (int i = 0; i < split.length - 1; i++) {
    int remainderLength = split.length - 1 - i;
    String[] remainders = new String[remainderLength];
    System.arraycopy(split, i + 1, remainders, 0, remainderLength);
    map.put(split[i], remainders);
}

在空格上拆分字符串,迭代直到最后一个,然后将条目放在HashMap中。

如果您希望最后一个单词映射到空数组:

for (int i = 0; i < split.length; i++) {
    int remainderLength = split.length - 1 - i;
    String[] remainders = new String[remainderLength];
    if (remainderLength > 0) {
        System.arraycopy(split, i + 1, remainders, 0, remainderLength);
    }
    map.put(split[i], remainders);
}