从String ArrayList返回某些值

时间:2014-03-31 13:26:55

标签: java string parsing arraylist

我已宣布List<String> listOfValues = new ArrayList<String>();

它的输出如下:

[0.0,100.0,5.0],[1.0,200.0,8.0],[2.0,600.0,2.0],....

例如,通过调用listOFvalues.get(0),我将访问0.0,100.0,5.0

我要做的是访问并存储其列值。 所以基本上我需要存储0.0,1.0,2.0作为第一个数组/ arrayList,100.0,200.0,600.0作为第二个,依此类推。

问题是,到目前为止,我只能获得整行(listOfValues.get())。

3 个答案:

答案 0 :(得分:3)

您可以使用String方法Split从每个String元素创建一个数组。

List<String> splittedArray = new ArrayList<>();
for(String s: listOfValues)
{
  for(String ss: s.split(",")) splittedArray.add(ss);
}

然后您可以通过splittedArray访问每个元素。

另一种选择是将分割后的元素存储到矩阵中,以便可以作为列进行访问:

List<List<String>> matrix = new ArrayList<>();
for(String s: listOfValues)
{
  matrix.add(Arrays.asList(s.split(",")));
}

答案 1 :(得分:1)

您可以创建List extends ArrayList并覆盖get方法:

public class ColumnArrayList<T> extends ArrayList<String> {
    public String get(int i) {
        StringBuilder buffer = new StringBuilder();
        String delim = "";
        for(int j=0;j<super.size();j++) {
            buffer.append(delim).append(super.get(j).split(",")[i]);
            delim = ",";
        }
        return buffer.toString();
    }
}

要看它工作:

public class Demo {     
    public static void main(String[] args) {
        List<String> listOfValues = new ColumnArrayList<String>();
        listOfValues.add("0.0,100.0,5.0");
        listOfValues.add("1.0,200.0,8.0");
        listOfValues.add("2.0,600.0,2.0");
        System.out.println(listOfValues.get(0));
        System.out.println(listOfValues.get(1));
        System.out.println(listOfValues.get(2));
    }
}

将打印您想要的内容:

0.0,1.0,2.0
100.0,200.0,600.0  
5.0,8.0,2.0

答案 2 :(得分:0)

您可以使用字符串类方法split()

String temp="0.0,100.0,5.0";
String[] array=temp.split(",");