正在解析 java 中的数组列表

parsing array list in java

我有以下数组列表输入:

[item II, model IX, brand XX]

期望的输出如下:

[II, IX, XX]

我尝试以下操作:

int size = names.size();

        for(int i = 0; i < size; i++)
        {
            System.out.println(names);
            String d=Arrays.toString(names.get(i).split("\s+"));

            System.out.println(d);}

上面的代码会return一个字符串如下,我纠结于如何对字符串进行索引,在这种情况下,以简单的方式取第二个元素。

[item, II]

[model, IX]

[brand, XX]

String.split() 方法return是一个字符串数组。例如,"item II".split("\s+") 会 return 一个字符串数组,例如:{"item", "II"}。所以,你可以只调用数组中的第二个项目 returned by split method.

String d = names.get(i).split("\s+")[1];

我想这就是你想要的。拆分后,其中returns一个数组,可以索引第二项。

List<String> names = new ArrayList<String>();
names.add("item II");
names.add("model IX");
names.add("brand XX");

List<String> secondNames = new ArrayList<String>();
for (String name : names) {
    String second = name.split("\s+")[1];  // get second item
    secondNames.add(second);
}

使用流:

package parsestring;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class ParseOnSpace {

    public static void main(String[] args) {

        List<String> names = new ArrayList<>(Arrays.asList("item II", "model IX", "brand XX"));

        List<String> values = names.stream()
                .map(name -> name.split(" ")[1])
                .collect(Collectors.toList());

        System.out.println(values);
    }
}