C#에서 고정 공백으로 문자열 서식 지정
-
String.Format
메서드를 사용하여C#
에서 고정 공백이 있는 문자열 형식 지정 -
$ – 문자열 보간
을 사용하여C#
에서 고정 공백이 있는 문자열 형식 지정 -
String.PadLeft
및String.PadRight
를 사용하여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.PadLeft
및 String.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#에서 고정 공백 또는 패딩을 사용하여 문자열 형식을 지정하는 방법에 대해 알아야 할 모든 것을 배웠습니다.
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