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

C#에서 임시 변수 없이 두 문자열 교환하는 방법

C#에서 임시 변수(temp variable)를 사용하지 않고 두 문자열을 서로 교환하려면 문자열 연결과 Substring() 메서드를 활용하면 됩니다. 이 글에서는 그 원리와 구현 방법을 단계별로 살펴보겠습니다.

교환 로직의 핵심 원리

이 방법은 크게 세 단계로 이루어집니다. 먼저 첫 번째 문자열에 두 번째 문자열을 이어 붙여 하나로 만든 뒤, Substring() 메서드로 각 문자열을 다시 분리해 내는 방식입니다.

1단계: 두 문자열을 하나로 연결

첫 번째 문자열(str1) 뒤에 두 번째 문자열(str2)을 붙입니다. 예를 들어 "Brad"와 "Pitt"이 연결되어 "BradPitt"이 됩니다.

str1 = str1 + str2;

2단계: str2에 원래의 str1 값 저장

연결된 문자열 전체 길이에서 두 번째 문자열의 길이를 뺀 만큼 앞부분을 잘라내면, 원래의 str1 값을 얻을 수 있습니다.

str2 = str1.Substring(0, str1.Length - str2.Length);

3단계: str1에 원래의 str2 값 저장

마지막으로, 연결된 문자열에서 현재 str2의 길이만큼 건너뛴 나머지 부분을 str1에 할당하면 원래의 str2 값이 됩니다.

str1 = str1.Substring(str2.Length);

전체 예제 코드

using System;

class Demo {

    public static void Main(String[] args) {
        String str1 = "Brad";
        String str2 = "Pitt";

        Console.WriteLine("Strings before swap");
        Console.WriteLine(str1);
        Console.WriteLine(str2);

        str1 = str1 + str2;

        str2 = str1.Substring(0, str1.Length - str2.Length);
        str1 = str1.Substring(str2.Length);

        Console.WriteLine("Strings after swap");
        Console.WriteLine(str1);
        Console.WriteLine(str2);
    }
}

실행 결과

Strings before swap
Brad
Pitt
Strings after swap
Pitt
Brad

실행 결과를 보면 임시 변수 없이도 두 문자열의 값이 성공적으로 교환된 것을 확인할 수 있습니다. 다만 실무 환경에서는 코드의 가독성과 유지보수성을 고려할 때 임시 변수를 사용하는 방식이 더 직관적일 수 있으므로, 상황에 맞게 선택하는 것이 좋습니다.