java - 读取.txt文件中的整数并存储在arraylist中

标签 java arraylist

我知道这个问题可能会被回答很多次。但是,我仍然无法解决这个具体问题。

基本上我有一个具有以下格式的 .txt 文件。

String Integer String

例如,

la 789 ferrari
turbo 560 porsche
veyron 987 bugatti
sls 563 benz
dbs 510 aston

如何逐行读取文件并将数字/整数仅存储到数组列表中?
谢谢!

最佳答案

这是一个更完整的 Java 式解决方案,使用 Java 7 ...为了好玩。

Main.java

import java.util.List;

public class Main
{
    private static final InputFileParser inputFileParser = new InputFileParser();
    private static final EntryNumberExtractor extractor = new EntryNumberExtractor();
    private static final String FILENAME = "input-file.txt";

    public static void main(String... args) 
    {
        List<Entry> entries = inputFileParser.parse(FILENAME);
        List<Integer> extractedIntegers = extractor.extract(entries);

        System.out.println("Entries: ");
        prettyPrintListItems(entries);

        System.out.println();

        System.out.println("Entry numbers: ");
        prettyPrintListItems(extractedIntegers);
    }

    private static <T> void prettyPrintListItems(List<T> list)
    {
        for (T item : list)
        {
            System.out.println(item);
        }
    }
}

InputFileParser.java

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class InputFileParser
{
    public List<Entry> parse(String filename)
    {
        List<Entry> entries = new ArrayList<>();
        File f = new File(filename);
        try (BufferedReader reader = new BufferedReader(new FileReader(f));)
        {
            String line = null;
            while ((line = reader.readLine()) != null) 
            {
                String[] components = line.split(" ");
                entries.add(new Entry(components[0], Integer.parseInt(components[1]), components[2]));
            }
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
        return entries;
    }
}

EntryNumberExtractor.java

import java.util.ArrayList;
import java.util.List;

public class EntryNumberExtractor
{
    public List<Integer> extract(List<Entry> entries)
    {
        List<Integer> integers = new ArrayList<>();
        for (Entry e : entries) 
        {
            integers.add(e.getNumber());
        }
        return integers;
    }
}

Entry.java

public class Entry
{
    private String model;
    private int number;
    private String company;

    public Entry(String model, int number, String company)
    {
        this.model = model;
        this.number = number;
        this.company = company;
    }

    public Integer getNumber()
    {
        return number;
    }

    @Override
    public String toString() 
    {
        return "model: " + model + ", number: " + number + ", company: " + company;
    }
}

关于java - 读取.txt文件中的整数并存储在arraylist中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21888382/

相关文章:

java - 无法使用 .sh 文件运行我的 .jar 文件

Java ArrayList如何在开头添加元素

java - Java 6 和 Java 7 ArrayList 容量增长的区别

java - junit - 测试从未实例化的类的私有(private)方法

java - 来自数据库的实体类

java - 如果线程本身不请求锁,它可以更改 java 锁定的对象数据吗?

java - 比较并检索 ArrayList 中的元素

java - 想要用java创建验证码

Java发送电子邮件非法分号?

java - 为什么 TrayIcon 不出现?