C#에서 고정 공백으로 문자열 서식 지정

Syed Hassan Sabeeh Kazmi 2023년10월12일
  1. String.Format 메서드를 사용하여 C#에서 고정 공백이 있는 문자열 형식 지정
  2. $ – 문자열 보간을 사용하여 C#에서 고정 공백이 있는 문자열 형식 지정
  3. String.PadLeftString.PadRight를 사용하여 C#에서 고정 공백이 있는 문자열 형식 지정
C#에서 고정 공백으로 문자열 서식 지정

이 자습서에서는 C#에서 다양한 방법을 사용하여 고정 공간으로 문자열을 자유롭게 형식화할 수 있는 방법을 배웁니다. .NET 환경은 문자열을 고정 공간에 정렬하기 위한 String.Format과 같은 정적 메서드를 제공합니다.

String.Format 메서드를 사용하여 C#에서 고정 공백이 있는 문자열 형식 지정

이 메서드는 개체, 변수 또는 표현식의 값을 문자열로 변환하고 지정된 형식에 따라 다른 문자열에 삽입합니다. String.Format은 형식 문자열로 시작하고 그 뒤에 하나 이상의 개체가 옵니다.

{int, int} 구문은 삽입 문자열을 나타내며 결과 문자열에 삽입된 문자열의 너비를 정의할 수 있습니다. 예를 들어 {0, 6} 구문은 6자 문자열을 나타냅니다.

C#에서 문자열은 기본적으로 필드 내에서 오른쪽 정렬되며 왼쪽 정렬을 위해 필드 너비 앞에 음수 기호 {0, -6}가 표시됩니다. 이 메서드의 대괄호는 선택적 요소를 나타내며 형식 문자열에는 {index[,alignment][:formatString]} 구문이 있습니다.

포맷 스트링의 인덱스는 메소드의 인자 목록에 속하는 객체에 해당하며, 이 인덱스는 스트링의 처음부터 순차적으로 처리될 수 있다.

암호:

using System;

public class formatString {
  public static void Main(string[] args) {
    string prtTxtAlg = "I like burgundy.";

    string txtFmtRight = String.Format("{0,30}", prtTxtAlg);

    string txtFmtCenter = String.Format(
        "{0,-30}",
        String.Format("{0," + ((30 + prtTxtAlg.Length) / 2).ToString() + "}", prtTxtAlg));

    string txtFmtLeft = String.Format("{0,-30}", prtTxtAlg);

    Console.WriteLine(txtFmtRight);
    Console.WriteLine(txtFmtCenter);
    Console.WriteLine(txtFmtLeft);
  }
}

출력:

           I like burgundy.
     I like burgundy.
I like burgundy.

$ – 문자열 보간을 사용하여 C#에서 고정 공백이 있는 문자열 형식 지정

$는 보간 표현식을 포함하는 보간된 문자열로 식별합니다. $ - string이 결과 문자열로 해석되면 보간 표현식이 있는 항목이 표현식 결과의 문자열 표현으로 대체되도록 강제합니다.

{<interpolationExpression>[,<alignment>][:<formatString>]} 구문은 문자열을 나타내고 구조는 보간 표현식을 나타냅니다. $ - 보간 문자열의 기본 요소는 <interpolationExpression>이고 두 개의 보조 및 선택적 요소는 대괄호 안에 있습니다. <alignment><formatString>.

interpolationExpression은 형식화할 결과를 생성하고 alignment는 문자열을 오른쪽 또는 왼쪽으로 정렬하기 위한 양수 또는 음수 값을 나타내며 formatString은 표현식 결과의 유형에서 지원됩니다.

일반적으로 복합 형식 지정을 지원하는 메서드 호출이 필요하지만 복합 형식 지정에 대한 메서드 지원 없이 이 메서드의 도움으로 모든 문자열을 사용할 수 있습니다. C#에서는 인수 목록이 아닌 문자열에 삽입하기 위해 보간된 식에 식을 도입하여 보간된 문자열을 쉽게 읽고 코딩할 수 있습니다.

더 나은 이해도와 성능 외에도 $ - string interpolation 메서드는 복합 형식 메서드에 대한 호출을 대체할 수 있을 뿐만 아니라 문자열 연결 작업에도 사용할 수 있습니다. 지원하는 연결 작업은 더 정확하고 읽기 쉬운 C# 코드를 생성할 수 있습니다.

암호:

using System;

public class formatString {
  public static void Main(string[] args) {
    string value = "I like burgundy.";

    string txtRight = $"{value,25}";
    string txtCenter = $"{value,20}";
    string txtLeft = $"{value,-10}";

    Console.WriteLine(txtRight);
    Console.WriteLine(txtCenter);
    Console.WriteLine(txtLeft);
  }
}

출력:

         I like burgundy.
    I like burgundy.
I like burgundy.

String.PadLeftString.PadRight를 사용하여 C#에서 고정 공백이 있는 문자열 형식 지정

String.PadLeft 메소드는 지정된 총 길이로 선행 문자가 있는 문자열을 채웁니다. String.PadRight 메서드는 지정된 총 길이까지 후행 문자로 문자열을 채웁니다.

이 두 가지 String 메서드에서 개념을 가져와 다음 C# 코드에서 찾을 수 있는 새 String.PadCenter 메서드를 만들 수 있습니다. String 메서드의 패딩 문자는 공백 또는 지정된 문자일 수 있으며 결과 문자열은 오른쪽 정렬 또는 왼쪽 정렬로 나타납니다.

C#에서 PadLeft()PadRight()는 지정된 전체 길이에 대해 왼쪽 또는 오른쪽에 공백이나 지정된 문자를 채워 문자열을 오른쪽 정렬 또는 왼쪽 정렬할 수 있습니다.

암호:

using System;

public class formatString {
  public static void Main(string[] args) {
    string txt = "I like burgundy.";

    Console.WriteLine(txt.PadLeft(20, ' '));

    // to pad_center the string using custom C# code
    Console.WriteLine(txtCenter.PadCenter(txt, 20, ' '));

    Console.WriteLine(txt.PadRight(20, ' '));
  }
}

// custom code to create `PadCenter` String method in C#
public static class txtCenter {
  public static string PadCenter(this string txt, int width, char symb) {
    if (txt == null || width <= txt.Length)
      return txt;

    int padding = width - txt.Length;
    return txt.PadLeft(txt.Length + padding / 2, symb).PadRight(width, symb);
  }
}

출력:

    I like burgundy.
  I like burgundy.
I like burgundy.

이 자습서에서는 C#에서 고정 공백 또는 패딩을 사용하여 문자열 형식을 지정하는 방법에 대해 알아야 할 모든 것을 배웠습니다.

Syed Hassan Sabeeh Kazmi avatar Syed Hassan Sabeeh Kazmi avatar

Hassan is a Software Engineer with a well-developed set of programming skills. He uses his knowledge and writing capabilities to produce interesting-to-read technical articles.

GitHub

관련 문장 - Csharp String