我想请求帮助完成这项任务: 我有CSV这样的例子:
column1$column2$column3
123$xyz$321
456$zyx$654
我想通过列/标题将Java解析为数组/数组列表 - >例如
ArrayList column1 = [123,456]
ArrayList column2 = [xyz,zyx]
ArrayList column3 = [321,654]
谢谢大家。
答案 0 :(得分:2)
这就是我将如何做到这一点......,请注意将列放在另一个List中以获得更少的代码并使其更具动态性。
public static void main(String[] args) {
ArrayList<ArrayList<String>> columns = new ArrayList<ArrayList<String>>();
BufferedReader br = null;
try {
String sCurrentLine;
br = new BufferedReader(new FileReader("testing.cvs"));
while ((sCurrentLine = br.readLine()) != null) {
String[] fields = sCurrentLine.split("\\$");
for (int i = 0; i < fields.length; i++) {
if (columns.size()<=i){
columns.add(new ArrayList<String>());
}
columns.get(i).add(fields[i]);
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (br != null)br.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
答案 1 :(得分:0)
我瘦了这可以帮助你解决这个问题。
public static void main(String[] args) {
Scanner s = null;
try {
s = new Scanner(new File("C:\\temp\\file.txt"));
ArrayList lis1 = new ArrayList();
ArrayList lis2 = new ArrayList();
ArrayList lis3 = new ArrayList();
while (s.hasNext()) {
String d = s.nextLine();
lis1.add(d.split("\\$")[0]);
lis2.add(d.split("\\$")[1]);
lis3.add(d.split("\\$")[2]);
}
for (Object l : lis1) {
System.out.print(l+" ");
}
System.out.print("\n ");
for (Object l : lis2) {
System.out.print(l+" ");
}
System.out.print("\n ");
for (Object l : lis3) {
System.out.print(l+" ");
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
当你不
时,你可以使用结果