编写超长字符串csv头

时间:2016-10-14 15:37:50

标签: java string csv

我必须写出一个CSV文件,标题有100个字段。 此刻,我正在写

private static final String HEADER = "header1, header2, header3, ...., header100";

它有效,但它非常混乱且难以阅读。

我应该尝试哪种更简洁的方式?

UPDATE
我想我将使用LinkedHashmap(Key为columnID,值为header1等)来构建它。这样,如果需要,更新字段标题会更容易。

2 个答案:

答案 0 :(得分:4)

清理代码的一个技巧是使用Stream#of并在其自己的行上指定每个元素,然后将它们连接在一起:

private static final String HEADER = Stream.of(
        "header1",
        "header2",
        "header3",
        // etc...
).collect(Collectors.joining(", "));

当然,如果你的标题实际上是" header1"," header2"等,你可以直接从流生成它们:

private static final String HEADER =
        IntStream.rangeClosed(1, 100)
                 .mapToObj(i ->  "header" + i)
                 .collect(Collectors.joining(", "));

答案 1 :(得分:2)

嗯,您可以使用com.google.common.base.Joiner,如果这对您来说不那么难看:

HEADER = Joiner.on(", ").join("header1", "header2")