如何使用 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]));
}
这种方法还提供了更好的性能,因为您不需要迭代未使用的标记。
我有一个 .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]));
}
这种方法还提供了更好的性能,因为您不需要迭代未使用的标记。