Как удалить повторяющиеся слово в строке java
Ответы
Сергей Якимович
28 ноября 2022
Если нужно убрать повторяющиеся слова полностью, то можно пойти таким путем :
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
1
0
Сергей Якимович
30 ноября 2022
Еще один способ удалить повторы слова в строке - с помощью 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
1
0
Сергей Якимович
28 ноября 2022
Удалить повторы слова в строке можно следующим образом :
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
1
0