문자열

  • 문자열(string)은 이중부호(") 사용.
  • 단일 문자(char)는 단일부호(') 사용.
  • string 키워드는 System.String 클래스와 동일함.
    • Substring(), Length 등 사용 가능.
  • Immutable, 한번 설정되면 수정할 수 없다.
    • 변수에 새로운 문자열을 대입하면 변경되는게 아니라 교체된다.
using System;

namespace MyApp
{
    class MyClass
    {
        static void Main(string[] args)
        {
            string s1 = "Foo";
            string s2 = "Bar";
            string s3 = s1 + " " + s2;

            char c1 = 'A';
            char c2 = 'B';

            Console.WriteLine($"String: {s3}");
            Console.WriteLine($"Substring: {s3.Substring(1,5)}");
            Console.WriteLine(c1);
            Console.WriteLine(c2);
        }
    }
}

문자

  • 문자열(string)은 문자(character)의 집합체.
  • 문자열 안 문자를 액세스하고 싶으면 SquareBracket 사용
    • 예) s[0] = ‘A’
using System;

namespace MyApp
{
    class MyClass
    {
        static void Main(string[] args)
        {
            // 문자열 내 한문자 액세스
            string s = "FooBar";
            for (int i=0; i<s.Length; i++)
            {
                Console.WriteLine($"{i}: {s[i]}");
            }

            // string to char[]
            char[] ca = s.ToCharArray();
            for (int i=0; i<ca.Length; i++)
            {
                Console.WriteLine(ca[i]);
            }

            // char[] to string
            char[] ca2 = { 'A', 'B', 'C', 'D' };
            s = new string(ca2);
            Console.WriteLine(s);

            // char 연산(ascii)
            char c1 = 'A';
            char c2 = (char)(c1 + 3);
            Console.WriteLine(c2);
        }
    }
}

StringBuilder

  • System.Text.StringBuilder
  • Mutable 타입
  • 문자열 수정시 별도 메모리가 생성, 소멸되지 않고 갱신함.
using System;
using System.Text;

namespace MyApp
{
    class MyClass
    {
        static void Main(string[] args)
        {
            StringBuilder sb = new StringBuilder();
            for (int i=1; i<=100; i++)
            {
                sb.Append(i.ToString());
                sb.Append(System.Environment.NewLine);
            }

            string s = sb.ToString();
            Console.WriteLine(s);
        }
    }
}

참고자료