/// <summary> /// 지정한 텍스트에서 마지막 문자의 받침을 지정한 받침으로 치환합니다. /// </summary> /// <param name="text">마지막 문자의 받침이 치환될 문자열입니다.</param> /// <param name="finalConsonant">치환할 받침입니다.</param> /// <returns>마지막 문자의 받침이 치환된 문장입니다.</returns> public static string ReplaceFinalConsonant(string text, FinalConsonant finalConsonant) { var lastCharacter = text[text.Length - 1]; text = text.Substring(0, text.Length - 1); return(text + ReplaceFinalConsonant(lastCharacter, finalConsonant)); }
/// <summary> /// <see cref="Hangul"/> 구조체의 인스턴스를 초기화합니다. /// </summary> /// <param name="character"><see cref="Hangul"/> 구조체로 변환될 한글 문자입니다.</param> public Hangul(char character) { if (CheckHangulSyllable(character)) { int unicodeValue = character; unicodeValue -= 0xac00; var remainder = unicodeValue % (VowelCount * FinalConsonantCount); Consonant = (Consonant)(unicodeValue / (VowelCount * FinalConsonantCount)); Vowel = (Vowel)(remainder / FinalConsonantCount); FinalConsonant = (FinalConsonant)(remainder % FinalConsonantCount); } else { Consonant = Consonant.Failed; Vowel = Vowel.Failed; FinalConsonant = FinalConsonant.Failed; } }
/// <summary> /// 지정한 문자의 받침을 지정한 받침으로 치환합니다. /// </summary> /// <param name="character">받침이 치환될 문자입니다.</param> /// <param name="finalConsonant">치환할 받침입니다.</param> /// <returns>받침이 치환된 문자입니다.</returns> public static char ReplaceFinalConsonant(char character, FinalConsonant finalConsonant) => (char)ReplaceFinalConsonant(character, (int)finalConsonant);
/// <summary> /// <see cref="Hangul"/> 구조체의 인스턴스를 초기화합니다. /// </summary> /// <param name="consonant">설정할 자음입니다.</param> /// <param name="vowel">설정할 모음입니다.</param> /// <param name="finalConsonant">설정할 받침입니다. 기본값은 <see cref="FinalConsonant.None"/>입니다.</param> public Hangul(Consonant consonant, Vowel vowel, FinalConsonant finalConsonant = FinalConsonant.None) { this.Consonant = consonant; this.Vowel = vowel; this.FinalConsonant = finalConsonant; }
/// <summary> /// 한글의 자음, 모음, 받침을 한 문자로 조합합니다. /// </summary> /// <param name="consonant"></param> /// <param name="vowel"></param> /// <param name="finalConsonant"></param> /// <returns></returns> public static char Merge(Consonant consonant, Vowel vowel, FinalConsonant finalConsonant = FinalConsonant.None) => (char)Merge((int)consonant, (int)vowel, (int)finalConsonant);