首页 > 解决方案 > Java如何拆分arralyist并设置在单独的字符串或数组中

问题描述

我是 Java 新手。我有一个包含以下数据的对象

1002,USD,03/09/2019,1004,2,cref,,,,,,,,,
1002,USD,03/09/2019,1005,3,cref,,,,,,,,,
1002,USD,03/09/2019,1003,3,cref,,,,,,,,,

我使用 StringTokenizer 在 arraylist 中转换它

List<String> elements = new ArrayList<String>();
StringTokenizer st = new StringTokenizer((String) object);

while(st.hasMoreTokens()) {
    elements.add(st.nextToken());
}

Tokenizer 将其转换为以下形式

[1002,USD,03/09/2019,1004,2,cref,,,,,,,,,, 
 1002,USD,03/09/2019,1005,3,cref,,,,,,,,,, 
 1002,USD,03/09/2019,1003,3,cref,,,,,,,,,]

我希望每行的第三个索引(1004,1005,1003)在单独的字符串或单独的数组中。请告知或是否有任何其他方法可以在不使用标记器的情况下获取第三个索引。

java 版本 "1.8.0_161" Java(TM) SE Runtime Environment (build 1.8.0_161-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

标签: javaarraysarrayliststringtokenizer

解决方案


要从每一行获取所需的值(第 4 项),您可以使用String.split()函数:

List<String> elements = new ArrayList<String>();
StringTokenizer st = new StringTokenizer((String) object);

while(st.hasMoreTokens()) {
    String[] row = st.nextToken().split(",");
    if (row.length > 3) {
        elements.add(row[3]);
    }
}

推荐阅读