我创建了一个hashmap>调用myMap,我希望将所有唯一的单词存储在Hashmap的键中,并将文件的名称存储在与关键字对应的值中。 从多个文件中获取输入并将其名称存储在与关键字相对应的值中。
来自1个文件的示例输入
AS YOU LIKE IT
by William Shakespeare
DRAMATIS PERSONAE.
DUKE, living in exile
FREDERICK, his brother, and usurper of his dominions
AMIENS, lord attending on the banished Duke
JAQUES, " " " " " "
LE BEAU, a courtier attending upon Frederick
CHARLES, wrestler to Frederick
OLIVER, son of Sir Rowland de Boys
JAQUES, " " " " " "
代码
String name = f.getName();
BufferedReader in = new BufferedReader(new FileReader(f));
String words = in.readLine().trim().toLowerCase();
for(String word: words.split("\\s+")) {
if (myMap.get(word) == null) {
myMap.put(word, new ArrayList<String>());
}
myMap.get(word).add(name);
}
我只能从所有文件中读取第一行..
答案 0 :(得分:1)
答案 1 :(得分:1)
我发现你正试图解决某种功课。
已经有一些相关和良好的答案给你,但还有另一种方法,也可能是相关的 - 特别是如果你正在参加一些编程课程。
它被称为&#34; 谷歌搜索方法&#34;
根据您以前的搜索查询,您可能会得到更好或更差的结果。但是,在 google.com 网站上,您可以快速找到一些常见编程问题的相关结果。 例如,我搜索&#34; 读取java中文件的所有行&#34;我得到的第一个结果是:How to read a large text file line by line using Java?
与你的问题相似,但已有19个答案,最好的答案超过700个。
要缩小搜索结果的范围,例如仅显示stackoverflow的结果,您可以搜索:&#34; 从java site中的文件文本中读取所有行:stackoverflow.com 强>&#34;
答案 2 :(得分:0)
这与空白行无关。
您拨打in.readLine().trim().toLowerCase();
一次。它读了一行。
您需要再次调用它来获取第二行,然后再次调用以获取第三行,依此类推。
我确定你已经知道循环是什么 - 使用一个。