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

How to store int from file, to Arraylist using StringTokenizer in java?

我有一个 .txt 文件,我想在我的程序中读取它。我必须获取 buy 和 price 的值并将它们存储到整数的 ArrayList 中。例如:

"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();
    }

}

}

请不要要求用勺子喂食。但在这里您可以执行以下操作

while (st.hasMoreTokens())  
{  
st.nextToken();  
list1.add(st.nextToken());  
st.nextToken();  
list2.add(st.nextToken());  
}  

如评论中所述,考虑使用 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]));
}

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