Java 知道CSV文件的分隔符
这可能是一个简单的问题,但我未能找到令人满意的答案。我正在用Java编写一个类,该类需要接受一个.csv文件,该文件在三列中填充双精度字符。显然,.csv文件使用逗号作为分隔符,但是当我尝试使用扫描仪设置它们时,扫描仪什么也找不到。有什么建议吗Java 知道CSV文件的分隔符,java,csv,java.util.scanner,Java,Csv,Java.util.scanner,这可能是一个简单的问题,但我未能找到令人满意的答案。我正在用Java编写一个类,该类需要接受一个.csv文件,该文件在三列中填充双精度字符。显然,.csv文件使用逗号作为分隔符,但是当我尝试使用扫描仪设置它们时,扫描仪什么也找不到。有什么建议吗 Scanner s = null; try { s = new Scanner(source); //s.useDelimiter("[\\s,\r\n]+"); //This one works if I am using a .txt fil
Scanner s = null;
try {
s = new Scanner(source);
//s.useDelimiter("[\\s,\r\n]+"); //This one works if I am using a .txt file
//s.useDelimiter(", \n"); // This is what I thought would work for a .csv file
...
} catch (FileNotFoundException e) {
System.err.format("FileNotFoundException: %s%s", e);
} catch (IOException e) {
System.err.format("IOException: %s%n", e);
}
示例输入为:
12.3 11.2 27.0
0.5 97.1 18.3
等等
谢谢你抽出时间
编辑:修正!找到了正确的分隔符,并意识到我使用的是hasNextInt()而不是hasNextDouble()/facepalm如果您试图阅读每个单独的项目,请尝试:
s.useDelimiter(",");
然后
s.next()
将从CSV返回一个项目。如果您试图读取每个项目,请尝试:
s.useDelimiter(",");
然后
s.next()
将从CSV返回一个项目。为什么CSV分隔符中有一个\n?如果CSV文件和TXT文件的内容相同,Java文件之间没有区别
我想你会想要的
s.useDelimiter(",");
或
为什么CSV分隔符中有一个\n?如果CSV文件和TXT文件的内容相同,Java文件之间没有区别 我想你会想要的
s.useDelimiter(",");
或
考虑以下几点:
first,second,"the third",fourth,"the,fifth"
应仅为5-最后一个逗号位于引号块中,不应拆分
不要重新发明轮子。有一些开源库可以处理这种行为
快速的谷歌搜索产生了,我相信还有其他的。考虑以下几点:
first,second,"the third",fourth,"the,fifth"
应仅为5-最后一个逗号位于引号块中,不应拆分
不要重新发明轮子。有一些开源库可以处理这种行为
快速的谷歌搜索产生了效果,我相信还有其他方法。有几种解决方法: 方法1: 在文件扩展名中使用条件语句(if-else/switch)
if(ext == 'csv') {
s.useDelimiter(", \n");
} else if(ext == 'txt') {
s.useDelimiter("[\\s,\r\n]+");
}
方法2:
正如其他答案所建议的,使用以下方法:
s.useDelimiter(",");
有几种解决方法: 方法1: 在文件扩展名中使用条件语句(if-else/switch)
if(ext == 'csv') {
s.useDelimiter(", \n");
} else if(ext == 'txt') {
s.useDelimiter("[\\s,\r\n]+");
}
方法2:
正如其他答案所建议的,使用以下方法:
s.useDelimiter(",");
你能提供一两个.csv文件的样本行吗?当然。我将把它添加到我的问题中。您可能想看一看我在您的示例输入中没有看到任何逗号。您能提供一行或两行.csv文件的示例吗?当然。我将把它添加到我的问题中,您可能想看一看,我在您的示例输入中没有看到任何逗号。谢谢。我认为自己编写代码会更简单,因为输入总是完全相同的。这是一个很好的库,可以解析和生成各种CSV格式以及制表符分隔的文件。谢谢。我认为自己编写代码会更简单,因为输入总是完全相同的。这是一个很好的库,可以解析和生成各种CSV格式以及制表符分隔的文件。我必须说,我更喜欢glowcoder的响应,而不是我自己的响应。我以前在我们的应用程序中有一个自制的CSV解析器,这让我很头疼。我必须说我更喜欢glowcoder的响应而不是我自己的。我以前在我们的应用程序中有一个自制的CSV解析器,这让我很头疼。