我有一个CSV文件。它有很多行。每一行都有多个用逗号分隔的值。
我正在使用OPENCSV从文件中提取数据。我希望能够直接转到列表数据结构中的任何特定行。
CSVReader reader = new CSVReader(new FileReader(
"myfile.csv"));
try {
List<String[]> myEntries = reader.readAll();
for (String[] s : myEntries) {
System.out.println("Next item: " + s);
}
} catch (IOException e) {
e.printStackTrace();
}
这是打印
Next item: [Ljava.lang.String;@6c8b058b
Next item: [Ljava.lang.String;@1b192059
Next item: [Ljava.lang.String;@e9ac0f5
Next item: [Ljava.lang.String;@51f21c50
Next item: [Ljava.lang.String;@6e20f237
Next item: [Ljava.lang.String;@34fe315d
Next item: [Ljava.lang.String;@1c5aebd9
Next item: [Ljava.lang.String;@1532021a
Next item: [Ljava.lang.String;@62803d5
Next item: [Ljava.lang.String;@2d13981b
Next item: [Ljava.lang.String;@61672bbb
我想知道是否有任何方式,我可以通过列表访问单独的行,元素。
i.e
1,2,3,4,5
6,7,8,9,10
11,12,13,14
15,16,17,18
我希望String[] nextLine = 1,2,3,4,5 (其中nextLine =1,nextLine1 =2等),在下一次迭代中,nextLine应为6,7,8,9,10等
发布于 2011-10-26 03:31:40
List
接口支持通过get
方法进行随机访问-要获取线路0,请使用list.get(0)
。你需要对其使用数组访问,即lines.get(0)[0]
是第一行的第一个元素。
请参阅javadoc here。
发布于 2011-10-26 03:29:36
数组类型的toString
方法在Java语言中并没有什么特别的意义,只是告诉您这是的一个数组。
为此,您可以使用java.util.Arrays.toString
。
或者,如果您的线路只包含数字,并且您想要一条线路作为1,2,3,4...
而不是[1, 2, 3, ...]
,您可以使用:
java.util.Arrays.toString(someArray).replaceAll("\\]| |\\[","")
发布于 2011-10-26 03:29:59
此时:
for (String[] s : myEntries) {
System.out.println("Next item: " + s);
}
您需要将字符串数组连接到一行中。查看这篇文章:A method to reverse effect of java String.split()?
https://stackoverflow.com/questions/7894686
复制相似问题