Dada una expresión que está representada por String. La tarea es encontrar elementos duplicados en una expresión regular en Java. Use un mapa o establezca estructuras de datos para identificar la singularidad de las palabras en una oración.
Ejemplos:
Input : str = " Hi, I am Hritik and I am a programmer. " Output: I am Explanation: We are printing duplicate words in the given Expression. Input : str = " Ironman is alive. " Output: There is no Duplicate Word. Explanation: There are no duplicate words present in the given Expression.
Enfoque 1:
- Obtenga la expresión.
- Almacene todas las palabras en una array.
- Dividir palabra usando regex ‘\\W’. ( uso de expresiones regulares )
- Iterando en la array y almacenando palabras y todo el número de ocurrencias en el Mapa.
- Ahora, en el mapa, si el número de ocurrencias es más de 1, estamos imprimiendo la palabra.
A continuación se muestra la implementación del enfoque anterior:
Java
// 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); } } }
Producción
I am
Enfoque 2:
- Obtenga la expresión.
- Almacene todas las palabras en una array.
- Dividir palabra usando regex ‘\\W’. ( uso de expresiones regulares )
- Hacer coincidir cada palabra de la array con otras palabras a través de la iteración.
- Si las palabras coinciden, se agregan palabras en un conjunto porque el conjunto elimina las palabras repetidas agregadas por el flujo de iteración.
- Finalmente, estamos imprimiendo el conjunto.
A continuación se muestra la implementación del enfoque anterior:
Java
// Find Duplicate Words in a Regular Expression in Java import java.util.*; public class Main { public static void main(String[] args) { String expression = "Hi, I am Hritik and I am a programmer"; // splitting words using regex String[] words = expression.split("\\W"); // creating object of HashSet class implemented by Set<String> set = new HashSet<>(); // here we are iterating in Array for (int i = 0; i < words.length - 1; i++) { for (int j = 1; j < words.length; j++) { // if strings matched then adding strings in // Set because if we ad same string set will // remove one and we have only repeated // words. if (words[i].equals(words[j]) && i != j) { set.add(words[i]); } } } // here we are printing the set System.out.println(set); } }
Producción
[I, am]
Publicación traducida automáticamente
Artículo escrito por depresseddeadpool y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA