C#에서 문자열(string)은 불변(immutable)이기 때문에 한 번 생성된 문자열의 특정 문자를 직접 수정할 수 없습니다. 따라서 주어진 인덱스에 있는 문자를 교체하려면 문자열을 문자 배열(char 배열)로 변환한 뒤 해당 위치의 값을 변경하고, 다시 문자열로 만들어야 합니다.
1단계: 문자열 설정
먼저 교체 작업을 진행할 원본 문자열을 선언합니다.
string str1 = "Port";
Console.WriteLine("Original String: "+str1);
2단계: 문자열을 문자 배열로 변환
ToCharArray() 메서드를 사용하면 문자열을 문자 배열로 손쉽게 변환할 수 있습니다.
char[] ch = str1.ToCharArray();
3단계: 인덱스를 지정하여 문자 교체
배열의 인덱스는 0부터 시작하므로, 세 번째 위치의 문자를 바꾸려면 인덱스 2를 사용해야 합니다.
ch[2] = 'F';
아래 예제는 문자열의 첫 번째 문자(인덱스 0)를 'F'로 교체하는 전체 과정을 보여줍니다.
예제
using System;
using System.Collections.Generic;
public class Demo {
public static void Main(string[] args) {
string str1 = "Port";
Console.WriteLine("Original String: "+str1);
char[] ch = str1.ToCharArray();
ch[0] = 'F';
string str2 = new string(ch);
Console.WriteLine("New String: "+str2);
}
}
출력 결과
Original String: Port New String: Fort
코드 설명
- str1.ToCharArray() : 문자열을 개별 문자로 이루어진 배열로 변환합니다.
- ch[0] = 'F' : 배열의 첫 번째 요소(인덱스 0)를 새로운 문자로 교체합니다.
- new string(ch) : 수정된 문자 배열을 다시 하나의 문자열로 결합합니다.
이처럼 ToCharArray()와 new string()을 함께 사용하면 문자열 내 임의의 위치에 있는 문자를 자유롭게 교체할 수 있습니다. 동일한 방식으로 다른 인덱스의 문자도 원하는 값으로 손쉽게 변경할 수 있습니다.