C# 문자열(String) 클래스의 주요 속성
C#에서 문자열을 다룰 때 가장 기본이 되는 String 클래스는 문자열을 효율적으로 탐색하고 조작할 수 있도록 몇 가지 유용한 속성을 제공합니다. 그중 핵심적인 두 가지 속성은 다음과 같습니다.
| 번호 | 속성 및 설명 |
|---|---|
| 1 | Chars 현재 String 객체에서 지정된 위치(인덱스)에 있는 Char 객체를 가져옵니다. 배열처럼 인덱서를 통해 개별 문자에 접근할 수 있습니다. |
| 2 | Length 현재 String 객체에 포함된 문자의 총 개수를 가져옵니다. 반복문으로 문자열을 순회할 때 자주 사용됩니다. |
예제 1: Chars와 Length 활용하기
다음 예제에서는 Length 속성으로 문자열 길이를 확인하고, Chars(인덱서)로 각 문자에 접근하여 문자인지 숫자인지 판별합니다.
using System;
public class Demo {
public static void Main() {
string str1 = "h8b9";
string str2 = "abcdef";
Console.WriteLine("Is string1 null or empty? = "+string.IsNullOrEmpty(str1));
Console.WriteLine("Is string2 null or empty? = "+string.IsNullOrEmpty(str2));
bool val = str1 != str2;
Console.WriteLine("Is str1 equal to str2? = "+val);
for (int i = 0; i < str1.Length; i++) {
if (Char.IsLetter(str1[i]))
Console.WriteLine(""+str1[i]+" is a letter");
else
Console.WriteLine(""+str1[i]+" is a number");
}
}
}출력 결과
위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.
Is string1 null or empty? = False Is string2 null or empty? = False Is str1 equal to str2? = True h is a letter 8 is a number b is a letter 9 is a number
여기서 눈여겨볼 점은 str1[i]와 같이 인덱스를 사용해 문자열의 개별 문자에 바로 접근할 수 있다는 것입니다. 이것이 바로 Chars 속성이 내부적으로 동작하는 방식입니다. 또한 Char.IsLetter() 메서드와 함께 사용하면 문자열을 구성하는 각 문자의 유형을 손쉽게 판별할 수 있습니다.
예제 2: IsNullOrWhiteSpace와 Length 확인하기
이번에는 IsNullOrWhiteSpace 메서드로 빈 문자열 여부를 검사하고, Length 속성으로 문자열 길이를 출력하는 예제입니다.
using System;
public class Demo {
public static void Main() {
string str1 = "hijklm";
string str2 = String.Empty;
Console.WriteLine("Is string1 null or whitespace? = "+String.IsNullOrWhiteSpace(str1));
Console.WriteLine("Is string2 null or whitespace? = "+String.IsNullOrWhiteSpace(str2));
Console.WriteLine("String1 length = "+str1.Length);
Console.WriteLine("String2 length = "+str1.Length);
Console.WriteLine("String length = "+"demo".Length);
}
}출력 결과
프로그램 실행 결과는 다음과 같습니다.
Is string1 null or whitespace? = False Is string2 null or whitespace? = True String1 length = 6 String2 length = 6 String length = 4
String.Empty로 초기화된 str2는 비어 있는 문자열이므로 IsNullOrWhiteSpace 검사 결과가 True로 나옵니다. 참고로 위 예제에서 세 번째 줄의 "String2 length"는 실수로 str1의 길이를 출력하도록 작성되어 있으므로, 실제 프로젝트에서는 str2.Length를 사용하는 것이 올바릅니다. 마지막 줄에서 볼 수 있듯이 문자열 리터럴에 직접 Length 속성을 적용할 수도 있다는 점도 기억해 두면 유용합니다.