Esempio n. 1
0
        public bool IsMatch(char hangulLetter)
        {
            var syllables = new Hangul().Syllabification(hangulLetter);
            var onset     = syllables[0];
            var nucleus   = syllables[1];
            var coda      = syllables[2];

            bool matched = true;

            if (_onset != default(char))
            {
                matched &= _onset == onset;
            }
            if (_nucleus != default(char))
            {
                matched &= _nucleus == nucleus;
            }
            if (_coda != default(char))
            {
                // 제15항: 글자 속에 모음으로 시작하는 약자가 포함되어 있을 때에는 해당 약자를 이용하여 적는다.

                // NOTE: 그러므로 쌍모음을 사용중일 경우에는 모음을 분리하여 약자를 체크한다.
                var codas = DissembleCoda(coda);
                matched &= _coda == codas[0];
            }
            return(matched);
        }
Esempio n. 2
0
        public char[] SubtractIfMatched(char hangulLetter)
        {
            var syllables = new Hangul().Syllabification(hangulLetter);
            var onset     = syllables[0];
            var nucleus   = syllables[1];
            var coda      = syllables[2];

            return(SubtractIfMatched(onset, nucleus, coda));
        }