C# - 문자열이 특정 문자열을 포함하는지 확인

어떤 문자열이 특정 문자열을 포함하고 있는지 확인할 때 사용할 수 있는 방법을 소개합니다.

1. string.Contains()를 이용한 방법

string.Contains()는 문자열에 인자로 전달된 문자열이 포함할 때 true, 그렇지 않으면 false를 리턴합니다.

아래와 같이 체크할 수 있으며, 대소문자가 일치하지 않으면 다른 문자로 생각하고 false를 리턴합니다. 만약 대소문자를 구분하지 않고 비교하고 싶을 때는 문자열과 비교하는 문자열을 ToLower()로 소문자로 만들고, 소문자끼리 비교를 하면 됩니다.

using System;

namespace Example {
    public class Program {
        public static void Main(string[] args) {

            string str = "Hello, World, C#";

            Console.WriteLine(str.Contains("Hello"));
            Console.WriteLine(str.Contains("c#"));
            Console.WriteLine(str.ToLower().Contains("c#".ToLower()));
        }
    }
}

Output:

True
False
True

2. string.IndexOf()를 이용한 방법

string.IndexOf()는 문자열에 인자로 전달된 특정 문자열이 있을 때, 그 Index를 리턴합니다. 만약 특정 문자열이 없으면 -1을 리턴합니다.

아래와 같이 리턴 값을 -1과 비교하여 특정 문자열이 포함되어있는지 체크할 수 있습니다. true가 리턴되면 특정 문자열이 존재하는 것입니다.

만약 대소문자 구분 없이 비교하고 싶을 때는 두번째 인자로 StringComparison.InvariantCultureIgnoreCase를 전달하면 됩니다.

using System;

namespace Example {
    public class Program {
        public static void Main(string[] args) {

            string str = "Hello, World, C#";

            Console.WriteLine(str.IndexOf("Hello") != -1);
            Console.WriteLine(str.IndexOf("c#") != -1);
            Console.WriteLine(str.IndexOf("c#",
                    StringComparison.InvariantCultureIgnoreCase) != -1);
        }
    }
}

Output:

True
False
True
Loading script...
codechachaCopyright ©2019 codechacha