在 JavaScript 中,Array.join() 方法提供了一种将数组元素连接成单个字符串的便捷方法。 Java 是否提供类似的功能?
如果你想从头开始创建这样的功能,你可以使用 StringBuilder:
static public String join(List<String> list, String conjunction) { StringBuilder sb = new StringBuilder(); boolean first = true; for (String item : list) { if (first) first = false; else sb.append(conjunction); sb.append(item); } return sb.toString(); }
但是,从 Java 8 开始,更高效、更优雅的选择是可用:
加入列表
List<String> list = Arrays.asList("foo", "bar", "baz"); String joined = String.join(" and ", list); // "foo and bar and baz"
对于包含非 String 类型元素的集合,您可以使用 Collectors.joining 收集器Stream API:
List<Person> list = Arrays.asList( new Person("John", "Smith"), new Person("Anna", "Martinez"), new Person("Paul", "Watson ") ); String joinedFirstNames = list.stream() .map(Person::getFirstName) .collect(Collectors.joining(", ")); // "John, Anna, Paul"
您也可以考虑使用StringJoiner 类,提供额外的自定义选项:
StringJoiner joiner = new StringJoiner(", "); list.stream() .forEach(joiner::add); String joinedFirstNames = joiner.toString(); // "John, Anna, Paul"
以上是如何在Java中高效地连接字符串列表?的详细内容。更多信息请关注PHP中文网其他相关文章!