프로그래밍
C#에서, 한글과 영어가 섞인 경우의 Format 정렬
pgmaru
2015. 7. 23. 15:16
반응형
C# Tips!! 한글과 영어가 섞인 경우의 Format 정렬
C#에서 문자열 출력시, 한글 한글자는 영어 2글자 분의 자리를 차지한다.
따라서 일반적인 정렬 방식을 쓰게 되면, 한글과 영어의 차이 때문에 정렬이 안된다.
이럴 때는 바이트수를 계산해서 출력해 주어야 자리수를 맞출 수 있다.
가령, 한글이냐 영어냐에 상관 없이 영어 열자리 간격에 맞추어 오른쪽 정렬로 출력하려면,
다음과 같이 하면 된다.
String strToPrint = "출력할 문자열";
int padLen = 10 - Encoding.Default.GetBytes(strToPrint).Length;
Console.WriteLine("{0}", "".PadLeft(padLen) + strToPrint);
또는, 다음과 같은 방법도 있다.
String strToPrint = "출력할 문자열";
byte[] byte1 = Encoding.Default.GetBytes(strToPrint + " ");
byte[] byte2 = new byte[10];
Array.Copy(byte1, byte2, 10);
Console.WriteLine("{0}", Encoding.Default.GetString(byte2));
반응형