我想将csv文件内容插入列表。
col1,col2,col3
b,a,v
a,c,p
d,a,z
q,z,a
r,a,b
这样我就可以获得特定的col
值
例如:if 2 nd col then
a
c
a
z
a
我试图将其插入列表
list: [b,a,v, a,c,p, d,a,z, q,z,a, r,a,b]
但我如何获得第二个col值。
更新
ArrayList<String> ar = new ArrayList<String>();
ar.add(line);
System.out.println("list: "+ar);
我可以打印第一个索引。
使用
System.out.println("get index: "+ar.get(0));
get index: b,a,v
但我需要得到'a'即需要给定数据的所有第二列
答案 0 :(得分:1)
解决方案1
而不是列表使用List.so您的列表成为
List<List>: [ [b,a,v], [a,c,p], [d,a,z], [q,z,a], [r,a,b]]
要得到任何一行,你只需要打电话
List<List<String> list;
List<String> row = list.get(index); \\will return you corresponding row
String content = row.get(1); \\will return col2 value
解决方案2
如果你按单个列表然后获得任何元素,你必须执行一些计算,如
list<String> ar = new ArrayList<String>();
ar.get(row * 3 + column) // will return you column of row you want.
注意:行数和列数从0开始,而不是1
答案 1 :(得分:1)
一个简单的for
循环将提供一个技巧,
为i
分配初始值columnnumber - 1
,其中columnnumber
是您要查找的列值,
for (int i = columnnumber - 1; i < args.length; i+=3)
{
System.out.print(args[i] + ", ");
}
由于每行包含3个值,因此您创建了一个列表。
答案 2 :(得分:1)
列表是0索引。索引1将从列表中返回第二个元素。
像这样使用。
list.get(1)
答案 3 :(得分:1)
你可以这样做。
ArrayList list = ... ;
...
int colId = 1;
int numCols = 3;
for(int i = colId; i < list.size(); i += numCols){
System.out.println(list.get(i));
}
答案 4 :(得分:1)
如果您只有%
,则可以使用ArrayList
运算符。
逻辑是这样的:
int colNo = 3 ; // column no which you want to get from list
for ( int i = 0; i < list.size(); i++ ) {
if ( i % colNo == 0) {
System.out.println(list.get(i));
}
}
但是在您的情况下,建议使用列表清单。
答案 5 :(得分:1)
根据您的更新,您需要 b,a,v 中的 a 。在这里你可以拆分字符串并获得中间元素,即索引1元素。因此,下面的代码片段将获得每个元素中的第二个值并打印它
for(int i=0;i<ar.size();i++) {
String[] tokens=(ar.get(i)).split(",");
System.out.println(tokens[1]);
}
没有使用arraylist的索引,你可以使用每个循环
for(String value:ar) {
String[] tokens=value.split(",");
System.out.println(tokens[1]);
}