我試圖創建一個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