/// <summary> /// 검색문자를 대상문자에 대해 (초성) 비교 후 일치 여부를 반환합니다. /// 검색문자에 초성이 주어질 경우 초성 일치, 그렇지 않은 경우 문자 완전 일치 여부를 반환합니다. /// </summary> /// <param name="searchChar">(초성) 비교할 문자</param> /// <param name="targetChar">비교 대상 문자</param> /// <returns></returns> public static bool IsOnsetMatch(char searchChar, char targetChar) { // 1. 검색문자가 초성인 경우 대응하는 대상문자도 초성을 비교 // 2. 그렇지 않은 경우 대응하는 대상문자와 완전 일치 여부 비교 HangulChar shc = new HangulChar(searchChar); HangulChar thc = new HangulChar(targetChar); if (shc.IsOnset() && thc.TrySplitSyllable(out char[] phonemes)) { targetChar = phonemes[0]; } return(searchChar == targetChar ? true : false); }
/// <summary> /// 검색문자를 현재 인스턴스의 문자에 대해 (초성) 비교 후 일치 여부를 반환합니다. /// 검색문자에 초성이 주어질 경우 초성 일치, 그렇지 않은 경우 문자 완전 일치 여부를 반환합니다. /// </summary> /// <param name="searchChar">(초성) 비교할 문자</param> /// <returns></returns> public bool IsOnsetMatch(char searchChar) { return(HangulChar.IsOnsetMatch(searchChar, this.CurrentCharacter)); }