Java 程序从列表中查找输入字符串的所有接近匹配项

javaobject oriented programmingprogramming更新于 2024/7/23 9:55:00

要从列表中查找输入字符串的所有接近匹配项,Java 代码如下 −

示例

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("数组中与ddcc相似的模式是:");
      match_words(my_arr, my_pattern);
   }
}

输出

数组中与 ddcc 类似的模式是:
aabb xxyy mmnn

名为 Demo 的类包含一个名为"string_encoding"的函数。此函数创建一个哈希表并遍历字符串以检查是否有任何与所讨论的字符串匹配的模式。

另一个名为"match_words"的函数被定义,它调用"string_encoding"函数并 检查数组中是否有任何与作为引用给出的字符串模式匹配的字符串。如果找到,则返回该单词。在主函数中,字符串数组与模式一起定义。在此模式上调用"match_words"函数。相关输出显示在控制台上。


相关文章