Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

목록에서 입력 문자열과 거의 일치하는 모든 항목을 찾는 Java 프로그램

<시간/>

목록에서 입력 문자열과 거의 일치하는 모든 항목을 찾으려면 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("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

Demo라는 클래스에는 'string_encoding'이라는 함수가 포함되어 있습니다. 이 함수는 해시맵을 생성하고 해당 문자열과 일치하는 패턴이 있는지 확인하기 위해 문자열을 반복합니다.

'string_encoding' 함수를 호출하고 참조로 제공된 문자열의 패턴과 배열에 일치하는 항목이 있는지 확인하는 'match_words'라는 다른 함수가 정의되어 있습니다. 찾으면 단어가 반환됩니다. 메인 함수에서 string형 배열은 패턴과 함께 정의됩니다. 이 패턴에서 'match_words' 함수가 호출됩니다. 관련 출력이 콘솔에 표시됩니다.