我有一些CSV文件,我正在尝试使用Java解析这些文件。我首先从CSV文件中提取一行,并将其发送到另一个方法,使用以下代码进行处理:
for (String tempFile : filesToBeRead) {
File csvFile = new File(tempFile);
Scanner scanner = new Scanner(csvFile);
scanner.useDelimiter("[\n\r]");
scanner.next();
while(scanner.hasNext()) {
String temp = scanner.next();
System.out.println(temp);
// dataStorage.enterRow(temp);
}
}
上述代码的输出为:
AI277|DEL|MUB|05-12-2013|0600|4.10|5500|Y|EB
AI279|DEL|MUB|10-12-2013|0630|4.30|4900|Y|E
AI289|DEL|MUB|10-12-2013|0830|4.00|5650|Y|EB
AI278|DEL|MUB|17-12-2013|1830|4.20|5300|Y|E
AI278|DEL|MUB|20-12-2013|1430|3.45|6500|N|EB
输出应该是:
AI277|DEL|MUB|05-12-2013|0600|4.10|5500|Y|EB
AI279|DEL|MUB|10-12-2013|0630|4.30|4900|Y|E
AI289|DEL|MUB|10-12-2013|0830|4.00|5650|Y|EB
AI278|DEL|MUB|17-12-2013|1830|4.20|5300|Y|E
AI278|DEL|MUB|20-12-2013|1430|3.45|6500|N|EB
到底发生了什么,即使设置了适当的正则表达式,这个额外的回车(\r)是从哪里来的?
发布于 2014-07-25 18:57:49
下面正则表达式将匹配一个或多个换行符或回车符,
"[\n\r]+"
只需将上面的正则表达式设置为分隔符。即将此scanner.useDelimiter("[\n\r]");
行更改为,
scanner.useDelimiter("[\n\r]+");
https://stackoverflow.com/questions/24954152
复制相似问题