Вы должны использовать Collectors.joining(",")
здесь. Также обратите внимание, что для операции обрезки вы можете просто использовать оператор map
.
String result = Arrays.stream("UC_Admin,Internal,UC_Reg,US_Admin".split(","))
.filter(role -> role.contains("UC"))
.map(String::trim).collect(Collectors.joining(","));
Гораздо лучший подход представлен ниже. Это должно превзойти предыдущее решение для большого набора данных. Однако я не провел никаких тестов, чтобы доказать это.
private static final Pattern COMMA = Pattern.compile(",");
String result = COMMA.splitAsStream("UC_Admin,Internal,UC_Reg,US_Admin")
.filter(role -> role.contains("UC"))
.map(String::trim)
.collect(Collectors.joining(","));