Как удалить повторяющиеся слово в строке 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
Познакомьтесь с основами Java бесплатно