private static Jamo CharDivider(char uni) { int remainder = (int)(uni - beginCodeHan); Jamo hanCode = new Jamo(); hanCode.jong = (char)(remainder % 28); hanCode.jung = (char)(((remainder - hanCode.jong) / 28) % 21); hanCode.cho = (char)((((remainder - hanCode.jong) / 28) - hanCode.jung) / 21); return(hanCode); }
private static char[] CharCombiner(Jamo c) { List <char> arr = new List <char>(); arr.Add(TransHanChar(c.cho, null, null)); if (c.jung > Array.IndexOf(Jamo.jungArr, 'ㅗ') && c.jung < Array.IndexOf(Jamo.jungArr, 'ㅛ')) { arr.Add(TransHanChar(c.cho, Array.IndexOf(Jamo.jungArr, 'ㅗ'), null)); } else if (c.jung > Array.IndexOf(Jamo.jungArr, 'ㅜ') && c.jung < Array.IndexOf(Jamo.jungArr, 'ㅠ')) { arr.Add(TransHanChar(c.cho, Array.IndexOf(Jamo.jungArr, 'ㅜ'), null)); } else if (c.jung > Array.IndexOf(Jamo.jungArr, 'ㅡ') && c.jung < Array.IndexOf(Jamo.jungArr, 'ㅣ')) { arr.Add(TransHanChar(c.cho, Array.IndexOf(Jamo.jungArr, 'ㅡ'), null)); } arr.Add(TransHanChar(c.cho, c.jung, null)); if (c.jong != (char)0) { if (c.jong > Array.IndexOf(Jamo.jongArr, 'ㄲ') && c.jong < Array.IndexOf(Jamo.jongArr, 'ㄴ')) { arr.Add(TransHanChar(c.cho, c.jung, Array.IndexOf(Jamo.jongArr, 'ㄱ'))); } else if (c.jong > Array.IndexOf(Jamo.jongArr, 'ㄴ') && c.jong < Array.IndexOf(Jamo.jongArr, 'ㄷ')) { arr.Add(TransHanChar(c.cho, c.jung, Array.IndexOf(Jamo.jongArr, 'ㄴ'))); } else if (c.jong > Array.IndexOf(Jamo.jongArr, 'ㄹ') && c.jong < Array.IndexOf(Jamo.jongArr, 'ㅁ')) { arr.Add(TransHanChar(c.cho, c.jung, Array.IndexOf(Jamo.jongArr, 'ㄹ'))); } else if (c.jong > Array.IndexOf(Jamo.jongArr, 'ㅂ') && c.jong < Array.IndexOf(Jamo.jongArr, 'ㅅ')) { arr.Add(TransHanChar(c.cho, c.jung, Array.IndexOf(Jamo.jongArr, 'ㅂ'))); } arr.Add(TransHanChar(c.cho, c.jung, c.jong)); } return(arr.ToArray()); }