[실습으로 다지는 C#] 문자열 출력 포멧

 

프로그래밍 언어를 배울 때 출력문은 언제나 제일 먼저 만납니다

Console.WriteLine("Hello, World");

이번 실습에서는 문자열 출력 포멧에 관한 사항입니다.

문자열 출력 포멧은 Console.WriteLine 메서드는 string.Format 메서드에서 같은 방식으로 표현할 수 있습니다. 이는 둘 다 문자열을 첫 번째 인자로 받기 때문입니다.

using System;
namespace Demo
{
    class Program
    {
        static void Main(string[] args)
        {
            string str = string.Format("Hello, World");
            Console.WriteLine("Hello, World");
        }
    }
}

문자열 출력 포멧은 여러 인자를 원하는 배치와 원하는 포멧으로 출력하는 것을 지원합니다.

{index[,alignment][:formatString]}

{인덱스[,배치][:포멧문자열]}

문자열 출력 포멧에서는 특정 인자를 표현하기 위해 중괄호{}와 몇 번째 인자인지를 나타내는 인덱스를 필수적으로 요구합니다. 주의할 사항은 인덱스는 0부터 시작합니다.

Console.WriteLine("테스트1: {0}, {1}, {2}", "Hello", 23.7, 10);
Console.WriteLine("테스트2: {0}, {2}, {1}", "Hello", 23.7, 10);
실행 결과
테스트1: Hello, 23.7, 10
테스트2: Hello, 10, 23.7

문자열 출력 포멧에서는 선택적으로 배치를 표현할 수 있습니다. 인덱스 표현 뒤에 콤마와 정수로 표현합니다. 정수의 절대값은 배치할 폭을 의미하며 양의 정수는 오른쪽 정렬, 음의 정수는 왼쪽 정렬을 의미합니다.

Console.WriteLine("테스트3:{0,10}, {0,-10}끝", 1234);
실행 결과
테스트3:      1234, 1234      끝

그리고 문자열 출력 포멧에서는 포멧 문자열도 선택적으로 표현할 수 있습니다. 인덱스 표현과 배치 뒤에 표현합니다. 물론, 배치가 없다면 바로 인덱스 표현 뒤에 표현합니다. 포멧 문자열에는 원하는 진수, 지수 표현, 정수 표현 등으로 나타낼 수 있어요. 여기서는 간단하게 살펴보고 이에 관한 사항은 다음 강의에서 다루기로 할게요.

Console.WriteLine("테스트4: 0x{0:X}, {0:E}, {0:N}", 12345678);
실행 결과
테스트4: 0xBC614E, 1.234568E+007, 12,345,678.00

다음은 이번 실습에서 사용한 전체 소스 코드입니다.

//https://ehpub.co.kr
//실습으로 다지는 C#
//  001. 문자열 출력 포멧
//      {index[,alignment][:formatString]}
//      {인덱스[,배치][:포멧문자열]}

using System;

namespace _001_문자열_출력_포멧
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("테스트1: {0}, {1}, {2}", "Hello", 23.7, 10);
            Console.WriteLine("테스트2: {0}, {2}, {1}", "Hello", 23.7, 10);

            //배치
            Console.WriteLine("테스트3:{0,10}, {0,-10}끝", 1234);

            //포멧 문자열
            Console.WriteLine("테스트4: 0x{0:X}, {0:E}, {0:N}", 12345678);
        }
    }
}