假设文件包含两列,第一列对应于女性,第二列对应于男性。txt文件可以包含多行。我基本上只需要一个文件中女性和男性的总数。文件设置为两列之间的空格。按enter键分隔行。例如:
1 1
3 4
5 6
这是我到目前为止在文件中读到的。我不确定输出为数组列表是否合适。
public static ArrayList<Integer> simCity(File f) throws FileNotFoundException {
Scanner scanner = new Scanner(f);
f = new File(String.valueOf(scanner));
ArrayList<Integer> integers = new ArrayList<>();
while (scanner.hasNext()) {
if (scanner.hasNextInt()) {
integers.add(scanner.nextInt());
} else {
scanner.next();
}
}
return integers;
}
2条答案
按热度按时间cngwdvgl1#
如果您在方法中有这个,您可以从apachecommons返回一个immutablepair中的计数(https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/tuple/immutablepair.html)
2vuwiymt2#
首先,我更喜欢退货
List
接口到ArrayList
具体类型,第二次声明(并初始化)您的List
两个整数值(分别代表女性和男性模拟市民)。使用try-with-Resources
以避免内存泄漏Scanner
(或显式关闭)。读取文件中的每一行,在空白处拆分并解析两个int值。将它们添加到各自的运行总数中。归还List
. 比如,也许,定义一个自定义计数器类型会更好。这样你就可以
female
以及male
独立于任何List
,并使代码更易于推理。它甚至可以包含解析和加法逻辑!例如,然后您的方法可以实现为