C#에서 문자열의 특정 위치에 있는 문자 바꾸기
이 게시물에서는 C#에서 문자열의 특정 위치에 있는 문자를 바꾸는 방법에 대해 설명합니다.
문자열은 C#에서 변경할 수 없습니다. 즉, 일단 생성되면 값을 변경할 수 없습니다. 가능한 유일한 솔루션은 교체된 문자로 새 문자열 개체를 만드는 것입니다. 문자열의 특정 위치에 있는 문자를 바꾸는 방법에는 여러 가지가 있습니다.
1. 사용 StringBuilder()
방법
권장되는 솔루션은 다음을 사용하는 것입니다. StringBuilder
클래스를 사용하여 아래와 같이 C#에서 문자열의 특정 인덱스에 있는 문자를 효율적으로 대체합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
using System; using System.Text; public class Example { public static void Main() { string str = "techie"; int pos = 0; char replacement = 'T'; StringBuilder sb = new StringBuilder(str); sb[pos] = replacement; str = sb.ToString(); Console.WriteLine(str); } } /* 결과: Techie */ |
2. 사용 String.Remove()
방법
문자열의 특정 인덱스에 있는 문자를 바꾸려면 문자열의 주어진 위치에 있는 문자를 제거한 다음 지정된 문자를 바로 같은 위치에 삽입하는 것이 좋습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
using System; public class Example { public static void Main() { string str = "techie"; int pos = 0; char replacement = 'T'; str = str.Remove(pos, 1).Insert(pos, replacement.ToString()); Console.WriteLine(str); } } /* 결과: Techie */ |
3. 사용 String.Substring()
방법
우리는 사용할 수 있습니다 String.Substring()
문자열을 교체할 문자 앞과 뒤의 부분 문자열로 구성된 두 개의 절반으로 분할하는 방법입니다. 교체할 문자를 분리하고 나면 아래와 같이 연결 연산자를 사용하여 최종 문자열을 작성할 수 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
using System; public class Example { public static void Main() { string str = "techie"; int pos = 0; char replacement = 'T'; str = str.Substring(0, pos) + replacement + str.Substring(pos + 1); Console.WriteLine(str); } } /* 결과: Techie */ |
4. 문자형 어레이 사용하기
또 다른 접근 방식은 주어진 문자열을 변경 가능한 문자 어레이로 변환한 다음 지정된 인덱스에 있는 문자를 바꾸는 것입니다. 마지막으로 문자열 생성자를 사용하여 문자 어레이을 다시 문자열로 변환합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
using System; public class Example { public static void Main() { string str = "techie"; int pos = 0; char replacement = 'T'; char[] chars = str.ToCharArray(); chars[pos] = replacement; str = new string(chars); Console.WriteLine(str); } } /* 결과: Techie */ |
C#에서 문자열의 특정 위치에 있는 문자를 바꾸는 것입니다.