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); }
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)); }