C#의 Char.GetUnicodeCategory(String, Int32) 메서드는 지정된 문자열에서 특정 위치에 있는 문자를 분석하여, 유니코드 표준에서 정의한 범주(UnicodeCategory) 중 하나로 분류하는 기능을 제공합니다. 이 메서드를 활용하면 문자가 소문자, 숫자, 문장 부호 등 어떤 유형에 속하는지 쉽게 확인할 수 있습니다.
메서드 구문
Char.GetUnicodeCategory 메서드의 기본 구문은 다음과 같습니다.
public static System.Globalization.UnicodeCategory GetUnicodeCategory (string str, int index);
여기서 각 매개변수의 의미는 다음과 같습니다.
- str: 분석 대상이 되는 문자열입니다.
- index: 문자열 내에서 확인하고자 하는 문자의 위치(인덱스)입니다. 인덱스는 0부터 시작합니다.
반환값은 System.Globalization 네임스페이스에 정의된 UnicodeCategory 열거형 값으로, 해당 문자의 유니코드 범주를 나타냅니다.
예제 1: 소문자 확인하기
다음 예제는 문자열 "amit"에서 인덱스 2 위치의 문자('i')가 어떤 유니코드 범주에 속하는지 확인합니다.
using System;
using System.Globalization;
public class Demo {
public static void Main(){
string val = "amit";
UnicodeCategory unicode = Char.GetUnicodeCategory(val, 2);
Console.WriteLine("지정된 인덱스의 문자 범주 = " + unicode);
}
}출력 결과
지정된 인덱스의 문자 범주 = LowercaseLetter
인덱스 2에 해당하는 문자 'i'는 영문 소문자이므로 LowercaseLetter(소문자) 범주로 분류되었습니다.
예제 2: 숫자 문자 확인하기
이번에는 문자열에 숫자가 포함된 경우를 살펴보겠습니다. 문자열 "hjk9878hj"에서 인덱스 4 위치의 문자('8')를 분석해 보겠습니다.
using System;
using System.Globalization;
public class Demo {
public static void Main(){
string val = "hjk9878hj";
UnicodeCategory unicode = Char.GetUnicodeCategory(val, 4);
Console.WriteLine("지정된 인덱스의 문자 범주 = " + unicode);
}
}출력 결과
지정된 인덱스의 문자 범주 = DecimalDigitNumber
인덱스 4에 해당하는 문자 '8'은 십진수 숫자이므로 DecimalDigitNumber(십진 숫자) 범주로 분류되었습니다.
정리
Char.GetUnicodeCategory(String, Int32) 메서드는 문자열 유효성 검사나 입력 데이터 분류 작업에서 매우 유용하게 활용됩니다. 예를 들어, 사용자 입력에 숫자만 포함되어야 하는 필드를 검증하거나, 특정 위치의 문자 유형에 따라 다른 처리 로직을 적용할 때 이 메서드를 사용할 수 있습니다. UnicodeCategory 열거형에는 LowercaseLetter, UppercaseLetter, DecimalDigitNumber, Punctuation 등 다양한 범주가 정의되어 있으므로, 필요에 따라 반환값을 비교하여 원하는 조건을 구현할 수 있습니다.