我正在尝试计算CSV文件中存在的列中元素的数量,我想用它来计算平均值。
这是我尝试查找列长度的方法,但它给出了列中每个数据的长度。这是非常愚蠢的事情,但我已经坚持了很长时间。
public static void main(String[] args) throws Exception {
String splitBy = ";";
int x;
BufferedReader br = new BufferedReader(new FileReader("bank.csv"));
String line;
while ((line = br.readLine()) !=null) {
String[] b = line.split(splitBy);
x = b[10].length();
System.out.println("length " + x);
}
br.close();
}

答案 0 :(得分:1)
您需要以下内容。几点说明。
您抓住了月份列,请记住索引从0开始。
public static void main(String[] args) throws Exception {
final String splitBy = ";";
int totalValue = 0;
int columnCount = 0;
final BufferedReader br = new BufferedReader(new FileReader("C:/test/bank-full.csv"));
String line;
// Throw away headers.
line = br.readLine();
while ((line = br.readLine()) != null)
{
String[] splitCSV = line.split(splitBy);
if (!splitCSV[9].equals(""))
{
totalValue += Integer.parseInt(splitCSV[9]);
columnCount++;
}
}
br.close();
System.out.println("Average is " + totalValue / columnCount);
}
答案 1 :(得分:0)
b [10] .length()不正确:它给出了特定行中第10个元素的字符串大小(并且它在循环中发生了变化)
line.length():行的长度
b.length:一行中元素的数量
如果你想要列数,你可以只保持读取的行数(只计算你的readlin())
或者您也可以将所有内容保存在表格中。
小心:有些csv有,或; ,也许在“(如果有字符串)里面答案 2 :(得分:0)
您必须使用x = b.length;
,它会为您提供每行的确切长度。
public static void main(String[] args) throws Exception {
String splitBy = ";";
int x;
BufferedReader br = new BufferedReader(new FileReader("bank.csv"));
String line;
while ((line = br.readLine()) !=null) {
String[] b = line.split(splitBy);
x = b.length;
System.out.println("length " + x);
}
br.close();
}