किसी सूची से इनपुट स्ट्रिंग के सभी करीबी मिलान खोजने के लिए, जावा कोड इस प्रकार है -
उदाहरण
import java.io.*; import java.util.*; public class Demo{ static String string_encoding(String str){ HashMap<Character, Integer> my_map = new HashMap<>(); String result = ""; int i = 0; char ch; for (int j = 0; j < str.length(); j++) { ch = str.charAt(j); if (!my_map.containsKey(ch)) my_map.put(ch, i++); result += my_map.get(ch); } return result; } static void match_words( String[] my_arr, String my_pattern){ int len = my_pattern.length(); String hash_val = string_encoding(my_pattern); for (String word : my_arr){ if (word.length() == len && string_encoding(word).equals(hash_val)) System.out.print(word + " "); } } public static void main(String args[]){ String[] my_arr = { "mno", "aabb", "pqr", "xxyy", "mmnn" }; String my_pattern = "ddcc"; System.out.println("The patterns similar to ddcc in the array are :"); match_words(my_arr, my_pattern); } }
आउटपुट
The patterns similar to ddcc in the array are : aabb xxyy mmnn
डेमो नामक एक वर्ग में 'स्ट्रिंग_एन्कोडिंग' नामक एक फ़ंक्शन होता है। यह फ़ंक्शन एक हैशमैप बनाता है और यह जांचने के लिए स्ट्रिंग पर पुनरावृति करता है कि क्या कोई पैटर्न है जो प्रश्न में स्ट्रिंग से मेल खाता है।
'मैच_वर्ड्स' नामक एक अन्य फ़ंक्शन को परिभाषित किया गया है जो 'स्ट्रिंग_एन्कोडिंग' फ़ंक्शन को कॉल करता है और यह देखने के लिए जांच करता है कि संदर्भ के रूप में दिए गए स्ट्रिंग के पैटर्न के साथ सरणी में कोई मिलान है या नहीं। यदि पाया जाता है, तो शब्द वापस कर दिया जाता है। मुख्य फ़ंक्शन में, स्ट्रिंग सरणी को एक पैटर्न के साथ परिभाषित किया गया है। इस पैटर्न पर 'Match_words' फ़ंक्शन को कॉल किया जाता है। प्रासंगिक आउटपुट कंसोल पर प्रदर्शित होता है।