[C#] 문자열의 한 문자를 가져오기

Learning 

When: 1학년 6월 29일

 

How:

백준 문제를 풀다가 문자열에 관한 문제가 나왔습니다. 거기서 첫 번째와 마지막 글자를 출력하는 간단한 문제였지만 어떻게 해야 값을 하나만 쏙 빼올 수 있을지 공부를 하게 되었습니다.

 

Understanding:

결론을 먼저 말하자면 우리가 string을 사용할 때, string[] 이런 식으로 사용하진 않지만 string은 char의 배열로 만들어진 클래스이고, string 클래스 내부에 아래와 같이 인덱스를 이용하여 특정 인덱스의 값에 접근할 수 있게 해주는 프로퍼티가 있기 때문에 우리는 string 형식을 배열처럼 string[0] 이런 식으로 사용하여 특정 인덱스에 있는 값에 저장할 수 있습니다.

public sealed class String : IComparable, ICloneable, IEnumerable<char>, ...
{
    public char this[int index] { get; }
}

하지만 여기서 주의할 점이 있는데, string[1]을 한다면 그 값은 char가 되지만 그대로 Console.WriteLine() 메서드에 인수로 넣을 때 + 연산자를 사용하면 (Console.WriteLine(str[0] + str[str.Length - 1])) 유니코드 숫자가 출력되니 (char)str[0] 처럼 사용해야 제대로 된 값이 나옵니다.

그리고 프로퍼티에 나와있는 것 처럼, get;만 있고 set이 없기 때문에 string 값을 인덱스 번호로 접근해도 읽을 수는 있지만 바꿀 수는 없습니다.

 

Result: string은 char의 배열로 이루어져 있고, 클래스 내부에 프로퍼티가 있어 str[0] 이런 식으로 인덱스 번호로 값에 접근하여 char 값을 얻을 수 있지만 바꿀 수 없고, + Console.WriteLine() 메서드에 + 연산자와 함께 넣을 경우 유니코드 숫자가 출력되기 때문에 (char)로 형변환을 해주어야 합니다.

'C#' 카테고리의 다른 글

[C#] 대리자 (Delegate)  (0) 2025.07.08
[C#] bool 타입이 아닌 값을 반환 형식이 bool인 메서드에서 반환하기  (0) 2025.07.02
[C#] enum 키워드  (0) 2025.06.25
[C#] const 키워드  (0) 2025.06.24
[C#] static 키워드  (0) 2025.06.22