-
Notifications
You must be signed in to change notification settings - Fork 0
Naramal.Hangul
한글의 자소 분리, 조합 기능을 제공하는 구조체입니다.
한글의 자음을 나타내는 값입니다.
한글의 모음을 나타내는 값입니다.
한글의 받침을 나타내는 값입니다.
public Hangul(Consonant consonant, Vowel vowel, FinalConsonant finalConsonant = FinalConsonant.None);
자음, 모음, 받침을 이용해 한글 구조체를 초기화합니다.
한글 문자를 이용해 한글 구조체를 초기화합니다. 입력된 문자가 유니코드 Hangul Syllables
영역에 속하는 문자가 아니면 각 필드들은 Failed로 초기화됩니다. 이 경우엔 이 구조체에서 원래의 문자를 복원할 수 없습니다.
지정된 문자가 Hangul Syllables
에 속하는 문자인지 확인합니다.
public static Consonant ExtractConsonant(char character);
public static Vowel ExtractVowel(char character);
public static FinalConsonant ExtractFinalConsonant(char character);
지정된 문자에서 각각 자음, 모음, 받침을 추출합니다. 두 개 이상 혹은 세 개 전부 추출해야하면 한글 구조체 생성자를 이용하는 것이 좋습니다.
public static char Merge(Consonant consonant, Vowel vowel, FinalConsonant finalConsonant = FinalConsonant.None);
자음, 모음, 받침을 조합해 하나의 문자를 만듭니다.
필수요소는 아니지만 한글과 관련된 여러 처리를 제공합니다.
public static char ReplaceFinalConsonant(char character, FinalConsonant finalConsonant);
public static string ReplaceFinalConsonant(string text, FinalConsonant finalConsonant);
마지막 문자열의 문자나 입력받은 문자의 받침을 지정한 받침으로 치환합니다. FinalConsonant.None
으로 설정하면 받침을 제거합니다.
public static string Stretch(string text, int amount = 1, bool splitㅢ = false);
입력받은 문자열의 마지막 문자를 늘입니다. splitㅢ
를 true로 설정하면 'ㅢ'를 'ㅢㅣ'로 변경하지 않고 'ㅡㅣ'로 변경합니다.
마지막에 한글 외의 문자가 있으면 동작하지 않습니다. 반드시 마지막 문자는 한글이 되어야합니다.
// 으아악
Hangul.Stretch("으악")
// 안녀어어어엉
Hangul.Stretch("안녕", 4);
public static Vowel MakeShortVowel(Vowel vowel)
한국어에서는 이중모음을 늘여서 발음할 때 단모음으로 변화합니다. 다음 표는 변환 규칙입니다. 독자 연구이기 때문에 국립국어원에서 공식적으로 안내하는 자료와 상이할 수 있습니다.
이중모음 | 단모음 | 유니코드값 오프셋 |
---|---|---|
ㅑ | ㅏ | -2 |
ㅒ | ㅔ | -2 |
ㅕ | ㅓ | -2 |
ㅖ | ㅔ | -2 |
ㅛ | ㅗ | -4 |
ㅠ | ㅜ | -4 |
ㅘ | ㅏ | -9 |
ㅙ | ㅐ | -9 |
ㅝ | ㅓ | -10 |
ㅞ | ㅔ | -10 |
'ㅚ', 'ㅟ'는 원래 단모음으로 분류되지만 말할때는 다른 단모음으로 변화하며 '문장 끝 늘이기'구현을 위해 특수 규칙으로 포함하였습니다. 또한 'ㅢ'는 상황에 따라 달라지는 경우가 많아 특수 규칙으로 분류했습니다.
입력 모음 | 출력 모음 |
---|---|
ㅚ | ㅔ |
ㅟ | ㅣ |
ㅢ | ㅣ |