我有一个文件样本列表
firstname, lastname, age
anne, smith, 6
dougie, miller, 8
现在我被困在了arraylist
ArrayList<String[]> rows = new ArrayList<>();
while ((line = reader.readLine()) != null) {
String[] row = line.split(",");
rows.add(row);
}
for (String[] row : rows) {
System.out.println(Arrays.toString(row));
}
我得到了这些输出:
[firstname,lastname,age]
[anne,smith,6]
[dougie,miller,8]
我尝试过这样做:
String[] x1 = new String[rows.size()+1];
for(int i=0;i<rows.size();i++){
String[] lastname = (String[]) rows.get(i+1);
System.out.println(lastname[1]);
//x1[i]=lastname[1];
}
但我似乎无法将姓氏放在一个数组中。它会给我这个错误:
线程中的异常&#34; AWT-EventQueue-0&#34; java.lang.IndexOutOfBoundsException:索引:227,大小:227
我想要这个输出:
firstname anne dougie lastname smith miller age 6 8
我该怎么做?
答案 0 :(得分:0)
我考虑使用更简单的解决方案,使用Scanner
:
File file = new File(filePath);
try {
Scanner content = new Scanner(file).useDelimiter("\n");
while (content.hasNext()) {
String[] line = content.next().split(",\\s");
for (String s : line) {
System.out.println(s);
}
}
} catch (IOException e) {
e.printStackTrace();
}
答案 1 :(得分:0)
如果StringArrays的大小相同,那么这个应该可以正常工作:
int cols = rows.size() > 0 ? rows.get(0).length : 0;
for (int i = 0; i < cols; i++) {
for (int j = 0; j < rows.size(); j++) {
System.out.println(rows.get(j)[i]);
}
}