C#에서 한글 길이 구하기

2009. 6. 4. 17:34프로그래밍/C#

728x90
반응형

String의 길이를 계산하기 우해서는 일반적인 Length를 구하는 방식으로는 그 길이를 구할수 없습니다. 따라서 아래와 같은 2가지 방법을 사용하시면 됩니다.

#1번 방법:
        public static int GetStringLength(string STR)
        {
            char[] charObj = STR.ToCharArray(); // 입력 string을 char[]로 변경
            int maxLEN = 0; // 바이트 길이를 계산할 변수

            for (int i = 0; i < charObj.Length; i++) // 루프를 돌면서
            {
                    // 상위 1바이트를 가져온다.
                    byte oF = (byte)((charObj[i] & 0xff00) >> 7);
                    // 하위 1바이트를 가져온다.
                    byte oB = (byte)(charObj[i] & 0x00ff);

                    if (oF == 0) // 상위 1바이트가 0이면 알파벳이다.
                        maxLEN++;
                    else
                        maxLEN += 2;
            }
            return maxLEN;
        }

#2번 방법:권장합니다.
        public static int GetStringLength(string STR)
        {
            string s = STR;
            byte[] temp = System.Text.Encoding.Default.GetBytes(s);
            return temp.Length;          
        }

728x90
반응형