我正在读取的文本文件如下所示:
pizza, fries, eggs.
1, 2, 4.
我正在使用scanner类扫描这个.txt文件,我想将输入插入arraylist。我知道有一种方法可以拆分字符串并使用 ","
作为一个分隔符,但我似乎找不到如何以及在哪里应用这个。注:以下为 .
用作自己的分隔符,以便扫描程序知道需要检查下一行并将其添加到不同的arraylist。
下面是我在arraylist设置类中的相应代码:
public class GrocerieList {
static ArrayList<String> foodList = new ArrayList<>();
static ArrayList<String> foodAmount = new ArrayList<>();
}
下面是类扫描.txt输入的代码:
public static void readFile() throws FileNotFoundException {
Scanner scan = new Scanner(file);
scan.useDelimiter("/|\\.");
scan.nextLine(); // required because there is one empty line at .txt start
if(scan.hasNext()) {
GrocerieList.foodList.add(scan.next());
scan.nextLine();
}
if(scan.hasNext()) {
GrocerieList.foodAmount.add(scan.next());
scan.nextLine();
}
}
我在哪能分线?怎么做?也许我的方法有缺陷,我需要改变它?非常感谢您的帮助,谢谢!
3条答案
按热度按时间qni6mghb1#
使用
nextLine()
从文件中读取一行,然后消除结束句点,并用逗号分隔。并使用try with resources正确关闭文件。
iklwldmw2#
通常您会保存从
nextLine
方法,并使用split
方法将列表分解为一个数组,然后将其存储到目标。如果需要转换,例如从字符串到整数,则单独进行转换。ff29svar3#
最简单的方法是使用string#split。你也不想要“下一个”,而是下一个
GrocerieList.foodList.addAll(Arrays.asList(scan.nextLine().replaceFirst("\\.$", "").split(", ")));
(应该有效,但没有测试)。有关scanner类的更多信息,请参阅https://docs.oracle.com/javase/7/docs/api/java/util/scanner.html