java - 如何在java中使用StringTokenizer将int从文件存储到Arraylist?

标签 java file arraylist java-io stringtokenizer

我有一个 .txt 文件,我想在我的程序中读取它。我必须获取购买和价格的值并将它们存储到整数数组列表中。例如:

"buy 50 price 30"

我必须将 50 插入到 ArrayList 购买中,并将 30 插入到 ArrayList 价格中。

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

public class Store { 

public static void main(String[] args) {

    BufferedReader br = null;
    List <Integer> buy = new ArrayList<>();
    List <Integer> price = new ArrayList<>();

    // try to read the file
    try {

        br = new BufferedReader(new FileReader("Nets.txt"));
        String line;

        while ((line = br.readLine()) != null) {
            line = line.trim();
            line = line.replaceAll("/t", "");
            line = line.toLowerCase();
            StringTokenizer st = new StringTokenizer(line);
            while (st.hasMoreTokens()) {
                //Don't know what to do
            }
        }

    } catch (IOException e) {
        e.printStackTrace();
    }

}

}

最佳答案

正如评论中提到的,考虑使用String.split(regex)而不是StringTokenizer

代码可能如下所示:

while ((line = br.readLine()) != null) {
    line = line.trim();
    line = line.replaceAll("/t", "");
    line = line.toLowerCase();

    // New code
    String[] tokens = line.split(" ");
    buy.add(Integer.valueOf(tokens[1]));
    price.add(Integer.valueOf(tokens[3]));
}

这种方法还可以提供更好的性能,因为您不需要迭代未使用的 token 。

关于java - 如何在java中使用StringTokenizer将int从文件存储到Arraylist?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33722122/

相关文章:

java - JAXBElement<T> 将声明的类型 T 作为参数来与任何类一起使用

java - "final"在运行时是最终的吗?

java - 运行 Java 和 SQL 数据库连接时出现错误

安卓内存错误

java - 使用ArrayList进行用户输入

java - java中连接N个维度为d的数组列表时出错

java - 如何提取包含3个或更多a的标题?

c - 缓冲区输出缺少名字

c - 如果我的代码只传递了一个文件*,我的代码如何识别传递给 fopen() 的模式?

java - 是否可以使用比较器或比较器对整数 ArrayList 进行排序?