Java中如何将Set<String>转换为满足指定拼接规则的字符串?
实现方案
1. Java 8+ 最简写法(推荐)
直接使用Stream API + 收集器完成,无需手动处理分隔符边界:
import java.util.stream.Collectors; // 注意统一变量名,你示例中定义Set为mySet,add操作误用了hs、循环误用了search,这里统一修正 Set<String> mySet = new HashSet<>(); mySet.add("how"); mySet.add("are"); mySet.add("you"); String result = mySet.stream() // 给每个元素拼接指定后缀 .map(word -> word + ":*") // 指定分隔符直接拼接,工具类自动处理边界,不会出现首尾多余分隔符 .collect(Collectors.joining("|"));
输出结果完全符合要求:how:*|are:*|you:*
2. 低版本Java兼容写法
如果使用Java 7及更早版本,可通过判断StringBuilder长度避免末尾多出分隔符:
Set<String> mySet = new HashSet<>(); mySet.add("how"); mySet.add("are"); mySet.add("you"); StringBuilder sb = new StringBuilder(); for (String word : mySet) { // 非第一个元素先拼接分隔符 if (sb.length() > 0) { sb.append("|"); } sb.append(word).append(":*"); } String result = sb.toString();
内容的提问来源于stack exchange,提问作者TheStranger
相关产品推荐
相关产品推荐

