【发布时间】:2016-03-04 18:02:30
【问题描述】:
仅使用标准 Java 库,有什么简单的机制可以将字符串连接到一个限制,并在限制导致更短的字符串时附加一个省略号?
效率是可取的。连接所有字符串然后使用String.substring() 可能会消耗过多的内存和时间。可以在 Java 8 流管道中使用的机制更可取,这样甚至可能永远不会创建超过限制的字符串。
出于我的目的,我对以下任一表示的限制感到满意:
- 要加入的最大字符串数
- 结果中的最大字符数,包括任何分隔符。
例如,这是在 Java 8 中使用标准库强制连接字符串的最大数量的一种方法。有没有更简单的方法?
final int LIMIT = 8;
Set<String> mySet = ...;
String s = mySet.stream().limit( LIMIT ).collect( Collectors.joining(", "));
if ( LIMIT < mySet.size()) {
s += ", ...";
}
【问题讨论】:
-
这个问题不是要求“推荐或查找书籍、工具、软件库、教程或其他非现场资源。”
标签: java java-8 java-stream