这是我到目前为止所拥有的,我只有一台扫描仪,可以读取1- 100之间1000个数字的文件中的所有数字。我只是有点卡在我应该去的方向。
import java.util.Scanner;
import java.io.*;
import java.util.ArrayList;
public class ArrayListProb
{
public static void main(String[] args)throws IOException
{
File file = new File("number.txt");
Scanner reader = new Scanner(file);
ArrayList<Integer> numList = new ArrayList<Integer>(1000); //declare ArrayList with 1000 numbers
while(reader.hasNext()) //add the numbers to ArrayList
{
numList.add(reader.nextInt());
}
reader.close();
}
}
答案 0 :(得分:1)
以下是显示如何使用Scanner读取字符串值的示例:
public static void main(String[] args) throws IOException {
File file = new File("C:\\createtable.sql");
ArrayList<String> list = new ArrayList<String>(1000);
try (Scanner reader = new Scanner(file)) {
while (reader.hasNext()) // add the numbers to ArrayList
{
list.add(reader.next());
}
}
System.out.println(list);
}
您可以将整数读取为String值并将其解析为Integer。
答案 1 :(得分:1)
数组列表不支持这种方法的整数,所以你有两个选项 1)您可以使用Map而不是Arraylist,然后执行以下代码。
Map<Integer, Integer> myMap = new HashMap<Integer, Integer>();
while (inputFile.hasNext()){
Integer next = inputFile.nextInt();
if (myMap.containsKey(next)){
myMap.put(next, myMap.get(next) + 1);
}else{
myMap.put(next, 1);
}
}
2)或者您可以简单地将文件读取为字符串,然后将其解析为整数,如上述解决方案中所述。