Language/C#

[C#] 문자열 다루기 - string, 문자열 포맷

마탁이 2020. 12. 23. 20:56

1. String

 - 내부적으로 처리된 결과를 사용자 화면에 출력을 하거나 이기종간의 통신을 위한 XML의 기본 자료형이 되기도 함.

 - .NET Framework 에서 string은 유니코드 기반 문자의 집합으로 영어권과 비영어권 문자의 구분 없이 2 byte.

 - string은 번 생성된 객체는 read-only 이다.

   아래의 예제에서 str1 은 다른 객체이다. 변수의 명이 같아도 내부적으로 새로운 객체를 생성해 값을 복사한다.

string str1 = "string";
str1 += " Hello!";

 - 따라서 값을 반복적으로 자주 변경 할 경우 string 으로 처리하기 보다는 StringBuilder 를 사용할 것을 권고하고 있다.

 

2. String의 메소드와 프로퍼티

멤버 유형 설명
Length 프로퍼티  현재 문자열의 문자 수를 가져온다.
Format 메소드  문자열은 지정된 서식으로 표현한다.
Replace 메소드  문자열 내용을 지정된 문자열로 변경한다.
Split 메소드  문자열의 특정 구부자를 기준으로 문자열 배열을 반환한다.
Substring 메소드  문자열 일부를 자른다. 
ToLower 메소드  문자열 전체를 소문자로 변환한다.
ToUpper 메소드  문자열 전체를 대문자로 변환한다.
Trim 메소드  현재 문자열의 앞/뒤 공배 혹은 지정된 특정 문자를 제거한다.

 

3. 문자열 포맷

 - {위치 지시 번호, 문자열 정렬 지정} e.g : {05}

 - {위치 지시 번호:문자열 포맷} e.g : {0:0000#}

 * 만약 '{', '}' 를 출력 하려면 "{{", "}}" 와 같이 두 번을 작성하면 된다.

using System;

namespace SqlerCSharp.Ch08_02
{
    class Program
    {
        static void Main(string[] args)
        {
            int number1 = 1;
            int number2 = 123;

            Console.WriteLine("number 1 : |{0,5}|, number2 : {1:0000#}",
                number1, number2);
            Console.WriteLine("number 1 : |{0, -5}|, number2 : {1:0000#}",
                number1, number2);

            int number3 = 12345;
            Console.WriteLine("number 3 : {{ {0} }}", number3);
        }
    }
}

 

<위 코드에 대한 출력 결과>

 

 - 천 단위 컴마(,) 지정

  > 마이너스 금액의 경우 -12,345 가 아닌 (12,345) 와 같은 표현 방법으로 사용하는 경우가 있다.

   이럴 경우 포맷을 지정할 때 세미콜론(;) 으로 양수, 음수의 포맷을 같이 지정하는 방법이 있다.

using System;

namespace SqlerCSharp.Ch08_02
{
    class Program
    {
        static void Main(string[] args)
        {
            int number1 = 12345;
            int number2 = -12345;

            Console.WriteLine("number 1 : {0:#,#;(#,#)}", number1);
            Console.WriteLine("number 2 : {0}", number2.ToString("#,#;(#,#)"));
        }
    }
}

 

<천 단위 포맷 예>

 

 - 특정 길이까지 남는 앞 부분을 0 으로 채우기

  > 포맷을 지정할 경우 자릿수만큼 0 을 입력해 주면 된다.

  > '#' 은 10 진수 자리를 나타낸다.

using System;

namespace SqlerCSharp.Ch08_02
{
    class Program
    {
        static void Main(string[] args)
        {
            int number1 = 1;
            int number2 = 123;
            int number3 = 1234;

            Console.WriteLine("number1 : {0:000##}", number1);
            Console.WriteLine("number2 : {0:0000#}", number2);
            Console.WriteLine("number3 : {0}", number3.ToString("00000"));
        }
    }
}

 

<특정 길이까지 남는 앞 부분을 0 으로 채우는 예제>

 

 - 축약 문자열(@)

  > 폴더 경로와 같은 '\'와 같은 특수 문자를 표현할 경우, '\\' 와 같이 두 개를 입력해야 한다.

  > 축약 문자열을 표현하는 '@'를 사용하면 특수 문자가 아닌 입력 문자열 자체로 인식을 한다.

using System;

namespace SqlerCSharp
{
    class Program
    {
        static void Main(string[] args)
        {
            string systemFolder1 = "C:\\Windows\\System32";
            string systemFolder2 = @"C:\Windows\System32";

            Console.WriteLine("SystemFolder 1 : {0}", systemFolder1);
            Console.WriteLine("SystemFolder 2 : {0}", systemFolder2);
        }
    }
}

 

'Language > C#' 카테고리의 다른 글

[C#] 클래스  (0) 2020.12.26
[C#] 문자열 다루기 - StringBuilder  (0) 2020.12.23
[C#] 배열 정렬  (0) 2020.12.23
[C#] 배열 복사  (0) 2020.12.23
[C#] Jagged 배열  (0) 2020.12.23