휴지통

[C#] 문자열 형식

BinLogic 2018. 6. 27. 13:26
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
        static void Main(string[] args)
        {
            float f = 1.5F;
            int i = 10;
            System.Console.WriteLine("일반적인 표기법: {0}, {1}", f, i);
 
            System.Console.WriteLine($"중간삽입: {f}, {i}");
 
            System.Console.WriteLine("일반적인 표기 : {0:c}, {0:x}", i);
            System.Console.WriteLine(@"Data\Console'\Alpha.txt");
            //앞에 @를 붙이면 주소를 표기할때 유용하다.
 
            String str = String.Format("Format을 통한 문자열 저장 : {0}, {1}", f, i);
            System.Console.WriteLine(str);
        }
 
cs

 

 

 코드와 실행 결과는 이렇다. C#은 다른 언어와는 좀 다른, 독특한 문자열 포맷을 가지고 있다. 저렇게 {0}, {1}, {2} 이런 소켓 안에, 차례로 뒤의 변수들이 숫자 순서에 맞춰서 들어가게 된다. 예를 들어, Write("{0}, {1}, {0}", "Hi", "Hello"); 이런 식으로 있을 때, 출력은 "Hi Hello Hi"가 된다.

 주소를 표기할때는 위 코드처럼 앞에 @를 붙이면 알아서 \가 처리가 되서 편하고, 쓸만한게 중간삽입을 하게 해주는 $인데, 이걸 앞에다 붙이게 되면, 위 코드처럼 문자열의 변수를 직접 떄려박을 수 있다. 처음 책에서 봤을 때 장점은 가독성이 높다는 거고, 단점에는 아마 코드 호환성이 적다.. 정도로 적혀있던 걸로 기억한다.

 그 외에 문자열의 포맷을 지정할때는 소켓에 :를 붙이고 뒤에다 포맷을 표시해주면 된다 {0 : x}이런식으로.(x는 16진 포맷을 의미)

포맷에 관해서는 MSDN에 나열돼있다.

https://docs.microsoft.com/ko-kr/dotnet/standard/base-types/standard-numeric-format-strings

 

String.Format은 남의 코드에도 자주보이고, 실제로도 쓸 일이 많은 함수이니 꼭 알아두는게 좋다.