当前位置: 首页 > 面试题库 >

如何确定CSV文件中的分隔符

濮宇定
2023-03-14
问题内容

我有一种情况,我必须解析来自不同来源的CSV文件,解析代码非常简单明了。

        String csvFile = "/Users/csv/country.csv";
        String line = "";
        String cvsSplitBy = ",";
        try (BufferedReader br = new BufferedReader(new FileReader(csvFile))) {
            while ((line = br.readLine()) != null) {
                // use comma as separator
                String[] country = line.split(cvsSplitBy);
                System.out.println("Country [code= " + country[4] + " , name=" + country[5] + "]");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

我的问题来自CSV分隔符,我有许多不同的格式,,有时是有时是;

有什么方法可以在解析文件之前确定定界符


问题答案:

univocity-parsers支持自动检测定界符(也包括行尾和引号)。只需使用它而不是与您的代码作斗争:

CsvParserSettings settings = new CsvParserSettings();
settings.detectFormatAutomatically();

CsvParser parser = new CsvParser(settings);
List<String[]> rows = parser.parseAll(new File("/path/to/your.csv"));

// if you want to see what it detected
CsvFormat format = parser.getDetectedFormat();

免责声明:我是该库的作者,并且确保确保涵盖了各种极端情况。它是开源且免费的(Apache 2.0许可证)

希望这可以帮助。



 类似资料:
  • 问题内容: 我有一个CSV文件,其格式如下: “ FieldName1”,“ FieldName2”,“ FieldName3”,“ FieldName4” “ 04/13/2010 14:45:07.008”,“ 7.59484916392”,“ 10”,“ 6.552373” “ 04/13/2010 14:45:22.010 ”,“ 6.55478493312”,“ 9”,“ 3.53785

  • 目标:创建一个面向对象的图形Java应用程序,该程序将:读取一个CSV(逗号分隔值)文件,该文件由学生姓名(名字、姓氏)、ID以及内容和交付的初始标记组成(未评估学生使用-1值)。 这是我的代码,但当我点击选择文件。。当它真的应该打开文件并读取数据时,它会显示“预期的名字、姓氏、ID、内容和交付”。但不知何故,它不起作用。在此处输入图像描述 下面是我的代码: 私有类ChooseFileListen

  • 问题内容: 我目前有一个CSV文件,在Excel中打开时,总共有5个柱。只有A列和C列对我和中的数据有意义 其余的列不相关。从第8行开始,然后以7的倍数工作(即第8、15、22行, 29,36等等),我正在寻找用Python2.7和来自这些字段的信息。A列中的数据将是键(6位数字 整数),C列中的数据是键的相应值。我已经试图在下面突出显示此内容,但格式不正确最佳: 如上所述,我希望从A7(DDEF

  • Excel 2013似乎没有正确读取CSV文件(Excel 2010可以)。每次我打开. csv文件,我所有的数据都显示在第一列。 我知道我可以进入,,然后选择,但是这个设置没有保存,每次打开这种文件我都厌倦了这样做。 如何将Excel 2013一劳永逸地设置为漂亮地显示CSV文件(逗号分隔)?

  • 问题内容: 我有一个这样定义的属性: 由于我将Windows用作操作系统,因此它包含反斜杠。我想将此路径添加到glassfish域作为JVM选项(使用glassfish maven插件)。问题是,asadmin只能使用斜杠作为分隔符,而我的所有反斜杠都不断消失。如何定义内容与斜杠完全相同的属性? 问题答案: 我认为没有非编程方式可以做到这一点。因此,我建议使用带有Maven GMaven插件的普通

  • 我需要在PySpark中处理以下场景。 我有以下格式的csv数据,其中分隔符为,名称列中的数据用双引号括起来。标头也由相同的分隔符分隔 我需要清理数据并获得如下数据框 此外,在Scala Spark中,我们如何实现同样的目标?