Программа на Java для поиска повторяющихся слов в регулярном выражении

Опубликовано: 1 Декабря, 2021

Учитывая выражение, представленное String. Задача состоит в том, чтобы найти повторяющиеся элементы в регулярном выражении в Java. Используйте карты или структуры setdata для определения уникальности слов в предложении.

Примеры:

 Ввод: str = "Привет, я Хритик и программист."
Выход: Я
Explanation: Мы печатаем повторяющиеся слова в данном выражении.

Ввод: str = "Железный человек жив".
Вывод: нет повторяющегося слова.
Объяснение: В данном выражении нет повторяющихся слов.

Подход 1:

  1. Получите выражение.
  2. Храните все слова в массиве.
  3. Разделение слова с помощью регулярного выражения '\ W'. (использование регулярного выражения)
  4. Итерация в массиве и сохранение слов и всего количества вхождений в карту.
  5. Теперь, на карте, если количество вхождений больше 1, мы печатаем слово.

Ниже представлена реализация описанного выше подхода:

Ява

// Find Duplicate Words in a Regular Expression in Java
import java.util.*;
public class GFG {
public static void main(String[] args)
{
// we have a expression
String expression
= "Hi, I am Hritik and I am a programmer" ;
// splitting words using regex
String[] words = expression.split( "\W" );
// we are creating a Map for storing
// strings and it's occurrence"
Map<String, Integer> word_map = new HashMap<>();
// Here we are iterating in words array and
// increasing it's occurrence by 1.
for (String word : words) {
if (word_map.get(word) != null ) {
word_map.put(word, word_map.get(word) + 1 );
}
// if the word came once then occurrence is 1.
else {
word_map.put(word, 1 );
}
}
// creating a keyset of word_map
Set<String> word_set = word_map.keySet();
// We are iterating in word set
for (String word : word_set) {
// if word matched then checking occurrence
if (word_map.get(word) > 1 )
// here we are printing the duplicate words
System.out.println(word);
}
}
}
Выход

я
являюсь