JAVA:将枚举集转换为由列表和引号分隔的字符串

标签 java arrays java-8 java-stream

您好,我目前有一个枚举集,并且想将此枚举集转换为字符串。

所以转换

Set <AlertSide> mySet = Sets.newHashSet(AlertSide.THREAT,AlertSide.TARGET);

'THREAT','TARGET'

最好的方法是什么?我不太熟悉流,但我相信正确的思路是这样的

mySet.stream().map(Enum::toString).collect(Collectors.joining(","))

但这只提供了我'THREAT,ALERT'

也许有一种使用 Strings.join 的方法?

最佳答案

首先,如果您有一组枚举,则应该使用 EnumSet (自 Java 5 起可用):

Set<AlertSide> mySet = EnumSet.of(AlertSide.THREAT, AlertSide.TARGET);

如果你想要一个内容为'THREAT','TARGET'的字符串,那么你需要自己添加单引号:

mySet.stream().map(e -> "'" + e + "'").collect(Collectors.joining(","))

结果

'THREAT','TARGET'

关于JAVA:将枚举集转换为由列表和引号分隔的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60876632/

相关文章:

java - 用 Volley 上传多张图片?

java - 如何在xml文件中获取java中children的属性?

java - 混合泛型方法和 Java 8 语法的复合表达式无法编译

java - JNI Android - 将 char* 转换为字节数组并将其返回给 java

java - 尝试将 Jpanel 添加到 JFrame,但在调整 JPanel 窗口大小后将显示 Jpanel 的内容

javascript - 如何遍历复杂的 Json 对象并对每个等于特定值的属性做一些事情

javascript - JS : Get IDs of objects in specific order

javascript - 使用 .map 对数组中的所有数字进行因式分解

java - 如何聚合循环中进行 CompletableFuture 调用的结果?

java - 为什么 Java 8 的 Predicate<T> 不扩展 Function<T, Boolean>