Why StringJoiner when we already have StringBuilder?

后端 未结 5 1704
渐次进展
渐次进展 2020-12-01 04:30

I recently encountered with a Java 8 class StringJoiner which adds the String using the delimiters and adds prefix and suffix to it, but I can\'t understand the need of this

5条回答
  •  悲哀的现实
    2020-12-01 04:37

    It may simplify your code in some use cases:

    List list = // ...;
    
    // with StringBuilder
    StringBuilder builder = new StringBuilder();
    builder.append("[");
    if (!list.isEmpty()) {
        builder.append(list.get(0));
        for (int i = 1, n = list.size(); i < n; i++) {
            builder.append(",").append(list.get(i));
        }
    }
    builder.append("]");
    
    // with StringJoiner
    StringJoiner joiner = new StringJoiner(",", "[", "]");
    for (String element : list) {
        joiner.add(element);
    }
    

提交回复
热议问题