1

我正在使用 .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());

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

4

1 回答 1

1

您需要从您的方法返回一个数组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;
}

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

希望这可以帮助。

于 2016-11-08T03:01:24.523 回答