C#에서 문자열의 앞 또는 뒤에 특정 문자를 채워 지정한 길이를 맞추는 방법


C# 프로그램을 개발하다보면 문자열을 처리할 때 정해진 길이를 맞춰야 하는 경우가 많이 있습니다.

처리하는 문자열이 지정한 길이보다 적을 경우 부족한 길이만큼 공백으로 채우거나 지정된 문자로 채워서 문자열 길이를 정확하게 맞추어 주도록 프로그래밍을 해야 하는 경우도 있습니다.

이럴 경우 쉽게 생각하는 방법이 문자열의 길이를 구하고 지정된 길이에서 문자열의 길이만큼 뺀 다음 차이나는 길이만큼 공백이나 지정된 문자로 채워지도록 프로그래밍을 하는 것입니다.

C#에서 문자열에 PadLeft() 또는 PadRight()를 사용하게되면 지정한 길이만큼 왼쪽 또는 오른쪽의 여백을 지정한 문자로 채워 문자열의 길이를 쉽게 맞출 수가 있습니다.

대량의 데이터를 일괄적으로 처리해야 하는 경우 문자열의 길이를 맞추는 것은 매우 중요한 요소 입니다.
(예: 연말정산 자료를 국세청 연말정산 간소화 서비스로 자료 전송을 할 때 등 항목 별로 정확하게 지정된 자릿수를 맞추어 주어야 합니다.)

이번 글에서는 C#에서 문자열의 앞 또는 뒤에 특정 문자를 채워 지정한 길이를 맞추는 방법(2가지 유형)에 대해 알아보겠습니다.

PadRight – 지정한 길이만큼 오른쪽의 안쪽 여백을 지정한 문자로 채워서 문자열을 왼쪽으로 맞추기

▶ 문자열의 뒷쪽(오른쪽)에 공백이나 지정한 문자를 채워 문자열의 길이를 맞추는 방법으로 PadRigth()를 사용하는 방법이 있습니다.

PadRight()의 기본 구조는 string string.PadRight(int totalWidth, char paddingChar) 형식입니다.

  • totalWidth : 지정하는 길이
  • paddingChar : 여백을 채울 유니코드 문자
C#에서 문자열의 앞 또는 뒤에 특정 문자를 채워 지정한 길이를 맞추는 방법 1

▼ 아래 소스는 문자열의 길이를 10자리 지정하고 오른쪽 안쪽의 여백을 ‘*’로 채워 10자리의 문자열로 반환하는 예제 입니다.

private void button1_Click(object sender, EventArgs e)
{
    labelAfter1.Text = labelBefore1.Text.PadRight(10‘*’);
 
    labelAfter2.Text = labelBefore2.Text.PadRight(10‘*’);
 
}
 

PadLeft – 지정한 길이만큼 왼쪽의 안쪽 여백을 지정한 문자로 채워서 문자열을 오른쪽으로 맞추기

▶ 문자열의 앞쪽(왼쪽)에 공백이나 지정한 문자를 채워 문자열의 길이를 맞추는 방법으로 PadLeft()를 사용하는 방법이 있습니다.

PadLeft()의 기본 구조는 string string.PadLeft(int totalWidth, char paddingChar) 형식입니다.

  • totalWidth : 지정하는 길이
  • paddingChar : 여백을 채울 유니코드 문자
C#에서 문자열의 앞 또는 뒤에 특정 문자를 채워 지정한 길이를 맞추는 방법 2

▼ 아래 소스는 문자열의 길이를 10자리 지정하고 왼쪽 안쪽의 여백을 ‘*’로 채워 10자리의 문자열로 반환하는 예제 입니다.

private void button1_Click(object sender, EventArgs e)
{
    labelAfter1.Text = labelBefore1.Text.PadLeft(10‘*’);
 
    labelAfter2.Text = labelBefore2.Text.PadLeft(10‘*’);
 
}
 

PadLeft 사용 예제 추가

▶ 아래 화면은 여백을 공백으로 채워 10자리 문자열을 오른쪽에 맞추는 예제의 실행 화면 입니다.

labelAfter1.Text = labelBefore1.Text.PadLeft(10, ‘ ‘);

화면을 보면 문자열의 끝 자리가 오른쪽에 서로 맞지 않는 것처럼 보입니다. 그것은 공백(‘ ‘)의 길이가 일반 문자보다 폭이 좁기 때문에 시각적으로 아래 화면처럽 보이게 됩니다. 문자열의 길이는 서로 일치합니다.

C#에서 문자열의 앞 또는 뒤에 특정 문자를 채워 지정한 길이를 맞추는 방법 3


또는 여백을 0으로 채울 수도 있습니다.(연말정산 자료를 만들 때)

labelAfter1.Text = labelBefore1.Text.PadLeft(10, ‘0’)

=> 0000001234, 0000123456





이 글이 도움이 되었기를 바랍니다. ^-^


답글 남기기