C#으로 처음 만드는 프로그램은 보통 Hello World 다. 문자열은 특수한 자료형이다. 참조형 자료형이고 다양한 포맷팅과 메소드가 지원된다.

 

문자열이 왜 특수할까? 바로 사람이 사용하는 자료형이기 때문이다. 0과1로 컴퓨터는 모든 것을 할 수 있지만 자신에게 지시를 내리는 인간은 문자로 지시를 내려야 한다. 그렇기에 문자열과 0과1 사이에는 여러가지 처리방법이 필요하다.

 

인간을 위해서 또는 기계를 위해서 필요하다. 아래의 예제는 Hello C Sharp!를 출력한다. Hello World 프로그램과 동일하다. 그런데 string welcome = "Hello C Sharp"라는 문장이 나왔다.

 

이는 Hello C Sharp라는 문자열을 welcome이라는 이름을 가진 string 참조형에 할당하라는 말이다.

using System;

namespace CSharpBasic
{
    class Program
    {
        static void Main(string[] args)
        {
            string welcome = "Hello C Sharp!";

            Console.WriteLine(welcome);
        }
    }
}

welcome에는 문자열을 참조한 주소가 들어 있으니까 이것을 인자로 WriteLine 메소드에 보냈다. 결과는 

 

위와 같다. 똑같은 Hello 를 출력하지만 내부에서 일어나는 과정은 달라졌다. 한 단계를 더 거쳐서 온 것 같다.

 

그렇다면 이런 번거로운 과정이 왜 필요할까? 답은 얼마든지 문자열을 가공해서 출력하기 위해서다.

 

MSDN의 스타일로 알아보자. 이제 부터는 Main 함수의 내용만 바뀐다.

 

        static void Main(string[] args)
        {
            string myFriend = "MR.PARK";

            Console.WriteLine("Hello! " + myFriend);
        }

WriteLine 메소드에서 다양한 것을 해볼 수 있다. 문자열 두개를 연결시켜 출력했다. 이름만 알고 있으면 인사를 할 수 있다.

 

다음 예제는 이름을 바꾼다.

      static void Main(string[] args)
        {
            string myFriend = "MR.PARK";
            myFriend = "Ms. Woo";

            Console.WriteLine("Hello! " + myFriend);
        }

변수는 변할 수 있는 수라고 했다. 실행시간 도중에 변한다. 물론 문자열은 Main 함수의 스택에서 실제 문자열값의 주소만 저장하고 있다고 했다. 문자열이 바뀌면 새로운 주소로 변경된다.

 

        static void Main(string[] args)
        {
            string myFriend = "MR.PARK";
            myFriend = "Ms. Woo";

            Console.WriteLine($"Hello, {myFriend}! Welcome");
        }

결과값: Hello, Ms. Woo! Welcome

 

특수문자$를 앞에 사용하면 변수를 직접 { } 괄호안에 넣을 수 있다.

 

다음의 예제에서 처럼 두개의 변수도 사용가능하다.

        static void Main(string[] args)
        {
            string Friend1 = "MR.Park";
            string Friend2 = "Ms.Woo";

            Console.WriteLine($"{Friend1} and {Friend2} are good friends");
        }

*문자열 길이

string 형의 멘버변수가 있다. Length는 문자열의 길이를 말한다. 

        static void Main(string[] args)
        {
            string Friend1 = "MR.Park";
            string Friend2 = "Ms.Woo";

            Console.WriteLine($"name length : {Friend1.Length} and {Friend2.Length}");
        }

 

*문자열 자르기

다음은 문자열 양쪽을 잘라내는 메소드이다.

 class Program
    {
        static void Main(string[] args)
        {
            string trimTest = "    Yahoo!    ";

            Console.WriteLine($"[{trimTest}]");
            Console.WriteLine($"[{trimTest.TrimStart()}]");
            Console.WriteLine($"[{trimTest.TrimEnd()}]");
            Console.WriteLine($"[{trimTest.Trim()}]");
        }
    }

공백을 처리해주는 문자열 메소드다. 앞 뒤 둘다의 공백을 삭제한다.

 

*문자열 치환

 - 문자열을 바꿔주는 메소드도 있다. 바꾸는 것을 치환이라고 말해서 문자열 치환이라고 한다.

  	static void Main(string[] args)
        {
            string repl1 = "Life is short you need Python";

            Console.WriteLine($"{repl1.Replace("need", "love")}");
        }

문자열 치환

*대소문자 변경

 

- 다음은 대소문자로 바꾸는 메소드다. 영어권에서는 대소문자의 변경이 중요한일이다.

        static void Main(string[] args)
        {
            string repl1 = "Life is short you need Python";

            Console.WriteLine(repl1.ToUpper());
            Console.WriteLine(repl1.ToLower());
        }

 

*문자열 검색하기

        static void Main(string[] args)
        {
            string search = "What you need is C Sharp";

            Console.WriteLine(search.StartsWith("What"));
            Console.WriteLine(search.EndsWith("is"));
            Console.WriteLine(search.Contains("Sharp"));
            Console.WriteLine(search.Contains("Food"));
        }

문자열에 특정 단어가 있는지 검사한다. 있으면 true 없으면 false를 리턴한다.

 

true or false

 

이 포스트의 내용은 C샤프의 튜토리얼을 참고하여 작성했다. 이 외에도 수많은 방법으로 문자열을 다룰 수 있다. 하지만 이 정도의 메소드만 알아도 많은 것을 할 수 있을 것이다. 메소드들을 모두 외울 수는 없다. 자신에게 필요한 내용을 평소에 검색해 두면 좋다.

 

MSDN API Documentaion 은 엄청나게 방대한 양의 클래스와 메소드들이 들어있다. 살면서 모든 메소드를 다 써볼날이 있을지 모르겠지만 string 같이 주요한 클래스는 좀 더 들여다 볼 이유가 있다. 아래에 링크를 참고한다.

 

MSDN String Class

 

String Class (System)

텍스트를 UTF-16 코드 단위의 시퀀스로 나타냅니다.Represents text as a sequence of UTF-16 code units.

docs.microsoft.com

 

 

Hello World - C# 소개 대화형 C# 자습서

이 자습서에서는 브라우저를 사용하여 C#을 대화형으로 학습할 수 있습니다. C# 코드를 작성하고 브라우저에서 직접 코드를 컴파일하고 실행한 결과를 확인할 수 있습니다.

docs.microsoft.com

 

공유하기

facebook twitter kakaoTalk kakaostory naver band