Để tìm tất cả các kết quả gần giống của chuỗi đầu vào từ một danh sách, mã Java như sau -
Ví dụ
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); } }
Đầu ra
The patterns similar to ddcc in the array are : aabb xxyy mmnn
Một lớp có tên Demo chứa một hàm được gọi là ‘string_encoding’. Hàm này tạo một bản đồ băm và lặp lại chuỗi để kiểm tra xem có bất kỳ mẫu nào khớp với chuỗi được đề cập hay không.
Một hàm khác có tên 'match_words' được định nghĩa để gọi hàm 'string_encoding' và kiểm tra xem có bất kỳ kết quả khớp nào trong các mảng với mẫu của chuỗi được cung cấp dưới dạng tham chiếu hay không. Nếu tìm thấy, từ được trả lại. Trong hàm main, mảng chuỗi được định nghĩa cùng với một mẫu. Hàm 'match_words' được gọi theo mẫu này. Đầu ra có liên quan được hiển thị trên bảng điều khiển.