所以我在一个名为dictionary.txt
的文本文件中有一个很长的单词列表,它有一个单词,然后跳到一个新行,下一个单词如下:
priceably
southwesterly
semipapal
genuine
cardiotoxicities
shoeman
Utahan
ungeodetically
Schurman
...
我仍然在努力寻找一种方法,将它们都存储在一个字符串数组中,而不必一个一个地存储。
这是我目前得到的:
String[] words = new String[0];
int i = 0;
try
{
Scanner scnr = new Scanner(new File("dictionary.txt"));
String line;
while (scnr.hasNext())
{
line = scnr.nextLine();
String[] lineWords = line.split("\r?\n|\r");
words = concatenate(words, lineWords);
}
scnr.close();
}
我怎样才能更好地优化这个过程,使程序更快地完成这个过程?
2条答案
按热度按时间pqwbnv8z1#
BufferedReader在这里用于读取文件中的每一行,并将每一行添加到一个Strings的ArrayList中。
yhived7q2#
如果这对将来的任何人都有用的话,这就是我在评论中实现解决方案的方法(我没有一直使用数组列表,因为我几乎不知道如何使用它们,而且现在开始学习的截止日期已经越来越近了):
List<String> words = Files.readAllLines(Paths.get("dictionary.txt"), StandardCharsets.UTF_8);
这一行一次将超过600000个元素存储到一个数组列表中,这样就不需要一个循环来一一存储它们。