Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
 /// <summary>
 /// 검색문자를 현재 인스턴스의 문자에 대해 (초성) 비교 후 일치 여부를 반환합니다.
 /// 검색문자에 초성이 주어질 경우 초성 일치, 그렇지 않은 경우 문자 완전 일치 여부를 반환합니다.
 /// </summary>
 /// <param name="searchChar">(초성) 비교할 문자</param>
 /// <returns></returns>
 public bool IsOnsetMatch(char searchChar)
 {
     return(HangulChar.IsOnsetMatch(searchChar, this.CurrentCharacter));
 }