我正在使用.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());
非常感谢任何帮助,谢谢。
答案 0 :(得分: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;
}
它应该有效。您可能需要调整我的解决方案以适合您的特定方案,因为我没有运行此代码。另外,我不确定你为什么在列名附近附加引号,所以我删除了它们。
希望这有帮助。