C#에서는 string.Format 메서드의 정렬(alignment) 지정자를 사용하면 문자열에 원하는 폭만큼 패딩(공백 여백)을 손쉽게 추가할 수 있습니다. 반복문이나 복잡한 문자열 연산 없이 서식 문자열 하나로 깔끔하게 처리할 수 있다는 점이 큰 장점입니다.
정렬 지정자 기본 문법
복합 서식 문자열에서 패딩은 중괄호 안에 인덱스와 정렬 폭을 쉼표로 구분하여 지정합니다.
{인덱스,정렬 폭}
- 양수 폭(예:
{0,10}) → 필드 안에서 오른쪽 정렬, 남는 공간은 왼쪽에 공백으로 채워집니다. - 음수 폭(예:
{0,-10}) → 필드 안에서 왼쪽 정렬, 남는 공간은 오른쪽에 공백으로 채워집니다.
즉, 문자열의 오른쪽에 패딩을 추가하려면 음수 값을 사용해야 합니다.
const string format = "{0,-10}";
이 서식을 실제 문자열에 적용하는 방법은 다음과 같습니다.
string str = string.Format(format, "Marks");
전체 예제 코드
두 개의 열을 왼쪽 정렬하여 표처럼 정돈된 출력을 만들어 보겠습니다.
using System;
public class Program {
public static void Main() {
// 각 열 폭 10자, 왼쪽 정렬 → 오른쪽에 패딩 추가
const string format = "{0,-10}{1,-10}";
string row1 = string.Format(format, "Marks", "Subject");
string row2 = string.Format(format, "95", "Maths");
Console.WriteLine(row1 + "|");
Console.WriteLine(row2 + "|");
}
}
실행 결과
Marks Subject | 95 Maths |
| 문자를 기준으로 보면 각 항목 뒤(오른쪽)가 공백으로 채워져 전체 폭이 10자로 일정하게 유지됩니다. 이렇게 하면 성적표처럼 여러 행의 데이터를 열 단위로 깔끔하게 정렬할 수 있습니다.
참고: PadRight 메서드로 더 간단하게
오른쪽 패딩만 필요하다면 String.PadRight 메서드가 더 직관적인 선택입니다.
string padded = "Marks".PadRight(10); // "Marks " string dotted = "Marks".PadRight(10, '.'); // "Marks....."
두 번째 매개변수에 문자를 지정하면 공백 대신 해당 문자로 패딩을 채울 수도 있습니다.
정리
string.Format("{0,-폭}"): 왼쪽 정렬 → 오른쪽에 공백 패딩string.Format("{0,폭}"): 오른쪽 정렬 → 왼쪽에 공백 패딩PadRight(폭): 문자열 오른쪽에 공백 또는 지정 문자로 패딩