java - Univocity 解析器 : Calling a function from here is not working: parserSettings. selectFields( *some_function* );

标签 java csv univocity

我正在使用 .csv 文件,并且希望将函数构造的字符串传递给:parserSettings.selectFields( function );

在测试过程中,当函数返回的字符串直接粘贴到:parserSettings.selectFields( string );解析工作正常,但是,当使用该函数时,解析不起作用,并且仅输出空白。

这是函数:

    public String buildColList() {
            //Parse the qty col names string, which is a comma separated string
            String qtyString = getQtyString();
            List<String> qtyCols = Arrays.asList(qtyString.split("\\s*,\\s*"));

            String colString = StringUtils.join(qtyCols.toArray(), "\"" +  ", " + "\"");

            String fullColString;

            fullColString = "\"" + getString1() + "\""  + ", " + "\"" + getString2() + "\"" + ", " + "\"" + colString + "\"" + ", " + "\"" + getString4 + "\"";

            return fullColString;

        }

它的放置方式如下:

     parserSettings.selectFields(buildColList());

任何帮助将不胜感激,谢谢。

最佳答案

您需要从 buildColList 方法返回一个数组,因为 parserSettings.selectFields() 方法不会拆分单个字符串。您当前的实现是选择单个大标题而不是多个列。更改您的方法以执行以下操作:

public String[] buildColList() {
        //Parse the qty col names string, which is a comma separated string
        String qtyString = getQtyString();
        List<String> qtyCols = Arrays.asList(qtyString.split("\\s*,\\s*"));

        String colString = StringUtils.join(qtyCols.toArray(), "\"" +  ", " + "\"");

        String[] fullColString = new String[]{getString1(), getString2(), colString, getString4};
        return fullColString;
}

它应该可以工作。您可能需要调整我的解决方案以适应您的特定场景,因为我没有运行此代码。另外,我不确定您为什么要在列名称周围添加引号,因此我将其删除。

希望这有帮助。

关于java - Univocity 解析器 : Calling a function from here is not working: parserSettings. selectFields( *some_function* );,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40472979/

相关文章:

ruby - 如何在 Ruby 中将字符串保存到 CSV 文件?

用于计算目录中所有文件中行数的 Python 脚本

java - Android:Java:使用 key 而不是密码解密 AES

java - 聚合根中的重复值应该在领域层还是应用层进行检查?

JAVA - 如何创建对象数组?

java - 使用Univocity CSV解析器解析具有相同定义但列数不同的两个不同文件

java - univocity - 如何从选定的字符解析字符串

java - Univocity - 如何将 3(n) 行解析为一行(bean)

java - 在参与者层次结构中以原子方式传递可变对象

java - 使用Hive JDBC连接的Hive ACID事务属性