我正在尝试解析java中的csv文件并遇到问题。当我尝试像这样分割csv时:
public static void main(String[] args) {
String nameOfFile = "KingstonNorthWard2016Distribution.csv";
File file = new File(nameOfFile);
try {
Scanner inputStream = new Scanner(file);
while (inputStream.hasNext()){
String data = inputStream.next();
String[] values = data.split(",");
System.out.println(Arrays.toString(values));
}
inputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
我的控制台会返回:
[Distribution]
[Report]
[]
[Print]
[Date/Time:]
[31/10/2016]
[07:27:10PM]
[Bayside]
[City]
[Council]
[2016]
尽管我的csv看起来像这样:
Distribution Report ,,,,,,,,,,,,,,,,,,,,,,,,,,
Print Date/Time: 31/10/2016 07:27:10PM,,,,,,,,,,,,,,,,,,,,,,,,,,
Bayside City Council 2016,,,,,,,,,,,,,,,,,,,,,,,,,,
Central Ward,,,,,,,,,,,,,,,,,,,,,,,,,,
我无法理解的是为什么我的控制台看起来不像这样:
[Distribution report]
[Print Date/Time: 31/10/2016 07:27:10PM]
[Bayside City Council 2016]
[Central Ward]
如果有人能帮助那么好的话。对于额外的积分,csv后来继续列出名称,如" Smith,John"所以请记住,如果我的分裂需要改变。提前谢谢。
答案 0 :(得分:4)
hasNext
和next
对单词进行迭代,您需要hasNextLine
和nextLine
。
对于包含分隔符的字段,我们必须查看数据集中的示例,以尝试查看是否存在我们可以定义的规则,其中显示split
可以忽略分隔符。