我试图创建一个void方法,它将读取csv文件并计算状态的数量,例如TX的次数,多少次哦,以及Dc的次数。 out应该是-TX = 4; OH = 2; DC = 2。但我的输出是“对于输入字符串:”F“” - 我真的无法得到问题在哪里。有人帮助我?计算列数据
“Crimerate.csv”
州县率
TX,达拉斯,39
TX,Aderson,10
哦,弓箭手,20
DC,DC ,50
Tx,Houston,31
TX,克劳德,13
噢,贝克萨尔,10 DC,SE,40
public static void countnumber()
{
try{
List<String>number=Files.readAllLines(Paths.get("Crimerate.csv"));
double sum=0,num=0;
for (String line:number){
if(num==0){
++num;
continue;
}
line=line.replace("\"","");
String []result=line.split(",");
double close = Double.parseDouble(result[6]);
String numberAsString = Double.toString(close);
if(numberAsString.equals("Tx"))
{
sum++;
System.out.println("number of Tx =" + sum);
}
else if(numberAsString.equals("Oh"))
{
sum++;
System.out.println("number of Oh =" + sum);
}
else if(numberAsString.equals("Dc"))
{
sum++;
System.out.println("number of Dc =" + sum);
}
}
}catch(Exception e){
System.out.println(e.getMessage());
}
}
public static void main (String args[])
{
countnumber();
}
您正在递增每个if语句上相同的总和变量 – Priyamal
几天前才问这个问题吗?无论如何,每个“国家”都需要有一个柜台。此外,由于某些原因,州有“Tx”和“TX”,所以它应该是'numberAsString.equalsIgnoreCase()'。更好的解决方案是将状态转换为统一的情况,并使用“Map”跟踪而不是试图列出所有状态。 –
KevinO