Если нужно убрать повторяющиеся слова полностью, то можно пойти таким путем :
String text = "Ivan Petr Ivan Egor Egor Fedor";
String modifiedText = Arrays.stream(text.split(" "))
.collect(Collectors.toMap(s -> s, i -> 1, (a, b) -> a+b, LinkedHashMap::new))
// или .collect(Collectors.groupingBy(x -> x, LinkedHashMap::new, Collectors.counting()))
.entrySet().stream()
.filter(e -> e.getValue() == 1)
.map(e -> e.getKey())
.collect(Collectors.joining(" "));
System.out.println(modifiedText); // => Petr Fedor
3 года назад
Сергей Якимович
1
Еще один способ удалить повторы слова в строке - с помощью distinct() :
String text = "Ivan Petr Ivan Egor Egor Fedor";
String modifiedText = Arrays.stream(text.split(" "))
.distinct()
.collect(Collectors.joining(" "));
System.out.println(modifiedText); // => Ivan Petr Egor Fedor
3 года назад
Сергей Якимович
1
Удалить повторы слова в строке можно следующим образом :
String text = "Ivan Petr Ivan Egor Egor Fedor";
String modifiedText = Arrays.stream(text.split(" "))
.reduce("", (result, word) -> result.contains(word) ? result : result + " " + word);
System.out.println(modifiedText); // => Ivan Petr Egor Fedor