bdfgdfg

[C#] 문자열 다루기 본문

게임프로그래밍/C#

[C#] 문자열 다루기

marmelo12 2022. 4. 18. 12:53
반응형

C#에서는 편리한 기능들을 많이 제공한다.

우선 문자열(string 클래스)에서 찾기(Find)기능을 하는 메소드를 본다.

 

문자열 찾기

먼저 IndexOf 메소드.

 -> 현재 문자열 내에서 찾고자 하는 문자 또는 문자열의 위치를 찾는다.

 -> 문자열의 경우 해당 문자열의 첫번째 문자의 위치를 기준으로 위치를 반환한다. ex) Hello World! -> IndexOf("World!") -> 6번째 위치 (0번부터 시작)

1
2
3
4
5
6
7
8
9
10
11
class Program
{
    static void Main(string[] args)
    {
        string test = "Hello World!";
 
        //IndexOf
        Console.WriteLine("IndexOf '!' : {0}",test.IndexOf('!'));
        Console.WriteLine("IndexOf World! : {0}",test.IndexOf("World!")); // 문자열도 가능.
    }
}
cs

두번째로 StartsWith 메소드.

현재 문자열이 메소드에 넘겨준 문자열로 시작하는지를 확인.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Program
{
    static void Main(string[] args)
    {
        string test = "Hello World!";
 
        //IndexOf
        Console.WriteLine("StartsWith Hello  : {0}",test.StartsWith("Hello"));
        Console.WriteLine("StartsWith World! : {0}", test.StartsWith("World!"));
    }
}
 
cs

-> 이와 비슷한 함수인 EndsWith도 있다. 이름 그대로 메소드에 넘겨준 문자열이 현재 문자열의 끝을 나타내는 문자열인지를 확인.

 

Contains 메소드도 존재.

이름부터 안에 포함되어있는지 확인. 

 -> 즉 현재 문자열에 메소드에 넘겨준 문자열이 포함되어 있는지 확인.

1
2
3
4
5
6
7
8
9
10
11
12
class Program
{
    static void Main(string[] args)
    {
        string test = "Hello World!";
 
        Console.WriteLine("Contains Hello  : {0}", test.Contains("Hello"));
        Console.WriteLine("Contains MaMa   : {0}", test.Contains("MaMa")); // 문자열도 가능.
    }
}
 
cs

마지막으로 Replace함수.

현재 문자열에 메소드로 두 개의 문자열(혹은 문자들)들을 넘겨 마지막 인자로 넘긴 문자열로 바뀐 문자열을 반환.

 -> 원본은 바뀌지 않음.

1
2
3
4
5
6
7
8
9
10
11
12
class Program
{
    static void Main(string[] args)
    {
        string test = "Hello World!";
        string test2 = test.Replace("World!""C#!"); // 문자열을 반환.
 
        Console.WriteLine(test);
        Console.WriteLine(test2);
    }
}
 
cs

 

문자열 변형

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Program
{
    static void Main(string[] args)
    {
        string test = "Hello World!";
 
        // 문자열의 모든 대문자를 소문자로 변환한 문자열 반환
        Console.WriteLine(test.ToLower()); 
        // 문자열의 모든 소문자를 대문자로 변환한 문자열 반환
        Console.WriteLine(test.ToLower());
        // 문자열의 지정된 위치에 인자로 넘긴 문자열이 삽입된 문자열 반환
        Console.WriteLine(test.Insert(5," My "));
        // 문자열의 지정한 위치로부터 인자로 넘긴 수만큼의 문자가 삭제된 문자열 반환
        Console.WriteLine(test.Remove(5));
        // 현재 문자열의 앞/뒤에 있는 공백을 삭제한 문자열 반환.
        Console.WriteLine(" ABCD ".Trim());
    }
}
 
cs

 

 

문자열 분할

Split        : 현재 문자열을 인자로 넘긴 문자를 기준으로 분리한 문자열의 '배열'을 반환.

SubString : 현재 문자열의 인자로 넘긴 위치로부터 지정된 수만큼의 문자로 이루어진 문자열을 반환.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Program
{
    static void Main(string[] args)
    {
        string test = "Hello World!";
 
        // 띄어쓰기를 기준으로 분할
        string[] test2 = test.Split(' ');
        foreach (string splitString in test2)
        {
            Console.WriteLine(splitString);
        }
 
        Console.WriteLine();
 
        string test3 = test.Substring(0,5);
        Console.WriteLine(test3);
        string test4 = test.Substring(6);
        Console.WriteLine(test4);
 
    }
}
 
cs

 

반응형

'게임프로그래밍 > C#' 카테고리의 다른 글

[C#] 부모 자식 사이의 형 변환 (is,as)  (0) 2022.04.18
[C#] ref,out 키워드  (0) 2022.04.18
[C#] C#의 데이터 형식  (0) 2022.04.17
[C#] CLR(Common Language Runtime)  (0) 2022.04.17
Reflection / Attribute  (0) 2021.08.06
Comments