안녕하세요. BlockDMask 입니다.
오늘 공부할 내용은 C#의 string 출력 방법입니다. C#에서는 string을 출력하는 여러가지 방법이 존재하는데요,
그냥 출력하는 방법, format을 이용한 방법 그리고 문자열 보간을 이용한 방법 이렇게 세가지로 구분 할 수 있습니다.
각각 장단점이 있지만,
제가 생각했을떄는 문자열 보간(Interpolation)을 이용하는 방법이 제일 최신에 나온 문법인 만큼, 제일 편리한것 같습니다.
하지만, format() 메서드를 이용한 방법이 약간 더 멋있어 보입니다...ㅎㅎ
그럼 한번 C# string 출력 방법들에 대해 알아보러 출발하겠습니다.
1. C# string 출력 방법 : 기본 출력
모두 아실듯 합니다.
아래와 같이 string을 직접 출력하는 부분에 넣는방법이 있고, string 타입의 변수를 만들어서 사용하는 방법이 있습니다.
1 2 3 4 5 6 | //직접 Console.WriteLine("BlockDMask1"); //변수 이용 string str2 = "BlockDMask2"; Console.WriteLine(str2); | cs |
2. C# string 출력 방법2 : Format() 메소드
Format() 메소드를 이용하여 문자열을 출력하는 방법은 조금 신기합니다.
중괄호를 이용하여 코드에서 사용하는 변수나, 서식을 넣어주는 방법인데요. 아래와 같이 사용합니다.
중괄호 내부에 넣는 숫자를 첨자라고 하는데요, 첨자의 시작은 0부터 시작합니다.
문자열이 끝나고 콤마(,)뒤에 순서대로 0, 1, 2에 맞게 넣을 변수들을 입력해 주면 끝.
1 2 3 4 5 6 | //format 이용 방법1 Console.WriteLine("Example1 : {0}, {1}", "BlockDMask", 1212); //format 이용 방법2 int num = 999; string str1 = string.Format("Example2 : {0}, {1}, {2}", "BlockDMask", 3434, num); | cs |
3. C# string 출력 방법3 : 문자열 보간
문자열 보간은 C# 6.0 부터 사용할 수 있는 문법입니다.
{0}, {1} 과 같이 서식 항목들의 순서를 정해주는 Format() 방법과 달리
문자열 보간이라는 방법은 string 안에 직접 변수 이름을 집어 넣습니다.
"문자열" 이라고 있는 이 큰 따옴표(") 앞에 달라($)표기를 해주면 중괄호 안에 변수를 입력할 수 있습니다.
예를들어 $"문자열 테스트 {num}" 이런식으로 만들 수 있다는 이야기 입니다. 직접 예제를 보시죠.
1 2 3 4 | //문자열 보간 이용 방법 int a = 10; int b = 20; Console.WriteLine($"string example1 : {a} + {b} = {a+b}"); | cs |
4. C# Format, 문자열 보간 서식을 이쁘게 사용하는 예제
{} 중괄호를 이용한 서식에는 특별한 기능이 있습니다.
Format을 이용한다고 했을때나 문자열 보간을 이용한다고 했을때 {첫번째인자, 두번째인자} 이렇게 나눌수 있다고 하면
첫번째 인자 : 사용할 변수
두번째 인자 : 왼쪽 정렬 or 오른쪽 정렬 (음수가 왼쪽, 양수가 오른쪽) 을 뜻하게 됩니다.
아래 예제를 직접 보면 이해하기 쉬울겁니다.
1 2 3 4 5 6 7 8 9 10 11 12 | //구구단 for(int i=1; i<10; ++i) { for(int j=1; j<10; ++j) { //C# Format 이용 Console.WriteLine("{0, 5} x {1, -5} = {2, 10}", i, j, i * j); //C# 문자열 보간 이용 //Console.WriteLine($"{i, 5} x {j, -5} = {i*j}"); } } | cs |
> 결과 화면
서식에 맞게 왼쪽, 오른쪽 정렬이 되는걸 볼 수 있습니다.
'<개인공부> > [C#]' 카테고리의 다른 글
[C#] 인덱서 객체(인스턴스)를 배열 처럼 사용해보자 (0) | 2022.09.04 |
---|---|
[C#] Math.Clamp 메서드(함수) 설명 및 예제 (0) | 2022.07.18 |
[C#] string Trim, TrimEnd, TrimStart에 대해서 (공백제거, 문자제거) (2) | 2019.11.07 |
[C#] Nullable type, int? 널러블 타입에 대해서. (0) | 2019.09.28 |
[C#] Abs 절대값 함수에 대하여. (0) | 2019.07.10 |
[C#] 리터럴(Literal)이란? (7) | 2019.07.05 |
[C#] random, 랜덤 클래스에 대해서 (랜덤함수, 난수생성) (0) | 2019.05.08 |
[C#] params 가변인자 매개변수에 대해서. (4) | 2019.03.21 |