写超长字符串csv头



我必须写一个CSV文件,头有100个字段。此时此刻,我正在写

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

它可以工作,但它非常混乱,难以阅读。

有什么更整洁的方法吗?


更新我想我会使用LinkedHashmap(键是columnID和值是header1等)来构建它。这样,在需要时更新字段标头就更容易了。

清理代码的一个技巧是使用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(", "));

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

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

最新更新