我已宣布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()
)。
答案 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(",");