Вы можете сделать это с помощью Java 8:
import static java.util.stream.Collectors.joining;
public static void main(String[] args) throws Exception {
final List<String> strings = Arrays.asList("a", "b", "c");
final String joined = strings.stream()
.collect(joining(") (", "(", ")"));
System.out.println(joined);
}
Или:
final String joined = strings.stream()
.map(item -> "(" + item + ")")
.collect(joining(" "));
Какой вы предпочитаете это вопрос личных предпочтений.
Первый соединяет пункты ) (
, который дает:
а) (б) (
Затем вы используете префикс и суффикс аргументы joining
к с префиксом с (
и суффикса с )
, чтобы производить правильный результат.
Вторая альтернатива преобразует каждый элемент в (+ item +)
, а затем присоединяется к ним на «».
Th e сначала также может быть несколько быстрее, так как требуется только создание StringBuilder
экземпляр - как для соединения, так и для префикса/суффикса. Второй вариант требует создания n + 1StringBuilder
экземпляров, по одному для каждого элемента, а один для соединения на "".
Вы используете Java 8? – Maroun
Ну, StringBuilder кажется очевидным, можете ли вы привести пример кода (используя SB), чтобы мы лучше поняли, что вы имеете в виду, пожалуйста. –
Вы можете использовать StringBuilder (если вы не хотите, чтобы потокобезопасность) или использовать буфер строки –