【发布时间】:2020-02-23 20:59:58
【问题描述】:
我不知道这里出了什么问题。我的代码应该检查特定状态在 1 列 csv 文件中出现的次数。我试图避免为每个单独的州设置单独的计数器
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Arrays;
public class csvtxt {
public static void main(String a[]){
StringBuilder sb = new StringBuilder();
String strLine = "";
List<String> list = new ArrayList<String>();
try {
BufferedReader br = new BufferedReader(new FileReader("C:\\Users\\dbb38\\Downloads\\customers_export_1111 - customers_export_1.csv"));
while (strLine != null)
{
strLine = br.readLine();
if (strLine==null)
break;
sb.append(strLine);
sb.append(System.lineSeparator());
list.add(strLine);
}
String[] state = new String[]{"Alabama", "Alaska", "Arizona", "Arkansas", "California", "Colorado", "Connecticut", "Delaware", "Florida", "Georgia", "Hawaii", "Idaho", "Illinois", "Indiana", "Iowa", "Kansas", "Kentucky", "Louisiana", "Maine", "Maryland", "Massachusetts", "Michigan", "Minnesota", "Mississippi", "Missouri", "Montana", "Nebraska", "Nevada", "New Hampshire", "New Jersey", "New Mexico", "New York", "North Carolina", "North Dakota", "Ohio", "Oklahoma", "Oregon", "Pennsylvania", "Rhode Island", "South Carolina", "South Dakota", "Tennessee", "Texas", "Utah", "Vermont", "Virginia", "Washington", "West Virginia", "Wisconsin", "Wyoming"};
String[] state1 = new String[]{"Alabama1", "Alaska1", "Arizona1", "Arkansas1", "California1", "Colorado1", "Connecticut1", "Delaware1", "Florida1", "Georgia1", "Hawaii1", "Idaho1", "Illinois1", "Indiana1", "Iowa1", "Kansas1", "Kentucky1", "Louisiana1", "Maine1", "Maryland1", "Massachusetts1", "Michigan1", "Minnesota1", "Mississippi1", "Missouri1", "Montana1", "Nebraska1", "Nevada1", "New Hampshire1", "New Jersey1", "New Mexico1", "New York1", "North Carolina1", "North Dakota1", "Ohio1", "Oklahoma1", "Oregon1", "Pennsylvania1", "Rhode Island1", "South Carolina1", "South Dakota1", "Tennessee1", "Texas1", "Utah1", "Vermont1", "Virginia1", "Washington1", "West Virginia1", "Wisconsin1", "Wyoming1"};
for(i=0; i<list.size; i++)
{
String wordToSearchFor = state[i];
String[] state1[i] = 0;
for(String state2 : list)
{
if(state2.equals(wordToSearchFor))
{
state1[i]++;
}
}
System.out.println(state[i] + "=" + "["+ Vermont +"]");
}
//
System.out.println(Arrays.toString(list.toArray()));
br.close();
} catch (FileNotFoundException e) {
System.err.println("File not found");
} catch (IOException e) {
System.err.println("Unable to read the file.");
}
}
}
这是我得到的错误。我不知道为什么我会收到它,我试图更换它并放回它。
csvtxt.java:31: error: ']' expected
String[] state1[i] = 0;
^
csvtxt.java:31: error: illegal start of expression
String[] state1[i] = 0;
^
2 errors
【问题讨论】:
-
state1[i] = 0会不会更准确?您无需为已定义的对象提供定义 -
我还要补充一点,一旦您解决了当前突出显示为错误的问题;
state1[i]++;也会导致一个。Strings 没有++运算符。