Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# 문자열에서 특수 문자를 다른 문자로 교체하는 방법

C#에서 문자열에 포함된 특수 문자를 원하는 문자로 교체해야 하는 경우가 자주 있습니다. 예를 들어, 달러 기호($)처럼 특정 특수 문자를 일반 문자로 바꾸고 싶다면 Replace() 메서드를 사용하면 간단하게 처리할 수 있습니다.

기본 예제

먼저 아래와 같은 문자열이 있다고 가정해 보겠습니다.

string str = "abcd$ef$gh";

이 문자열에서 특수 문자 '$'를 'k'로 교체하려면 Replace() 메서드를 활용합니다.

string res = str.Replace('$', 'k');

전체 코드

문자열 내의 특수 문자를 교체하는 전체 코드는 다음과 같습니다.

using System;
public class Program {
    public static void Main() {
        string str = "abcd$ef$gh";
        Console.WriteLine("초기 문자열 = " + str);
        string res = str.Replace('$', 'k');
        // 교체 후 결과 출력
        Console.WriteLine("교체된 문자열 = " + res.ToString());
    }
}

실행 결과

초기 문자열 = abcd$ef$gh
교체된 문자열 = abcdkefkgh

코드 설명

위 코드를 살펴보면 다음과 같은 흐름으로 동작합니다.

1. 문자열 선언: 변수 str에 특수 문자 '$'가 포함된 문자열을 저장합니다.
2. Replace() 호출: str.Replace('$', 'k')를 호출하여 모든 '$' 문자를 'k'로 교체한 새로운 문자열을 반환받습니다.
3. 결과 출력: Console.WriteLine()으로 교체 전후의 문자열을 화면에 출력합니다.

참고 사항

C#의 문자열(string)은 불변(immutable)이므로 Replace() 메서드는 원본 문자열을 변경하지 않고, 교체가 완료된 새로운 문자열을 반환한다는 점에 유의하세요. 따라서 반환값을 반드시 새로운 변수에 저장하거나 기존 변수에 다시 할당해야 합니다.

또한 Replace() 메서드는 대소문자를 구분합니다. 대소문자 구분 없이 교체하려면 StringComparison 옵션을 함께 사용할 수 있습니다.

string res = str.Replace("ABC", "xyz", StringComparison.OrdinalIgnoreCase);

이처럼 Replace() 메서드 하나만으로도 문자열 내의 특수 문자나 특정 패턴을 손쉽게 교체할 수 있어, 데이터 정제(cleansing) 작업에서 매우 유용하게 활용됩니다.