'.Net Framework 3.5'에 해당되는 글 1건

  1. 2008.01.15 Reverse - 입력받은 문자열 뒤집기

C#을 이용한 Console 환경에서 입력받은 문자열을 뒤집는 방법을 한번 알아보도록 하겠습니다

"안녕하세요"를 입력받으면
"요세하녕안"으로 출력하는 프로그램


기존의 1.1에서는

string strInput = Console.ReadLine();

string strOut = "";
for (int i = strInput.Length; i > 0; i--)
{
    strOut += strInput[i-1].ToString();
}

Console.WriteLine(strOut);

와 같이 코딩하던 것을 기억하실 겁니다.



그리고, string 문자열 연산에 따른 부하를 줄이기 위해서 2.0을 이용한다면

char[] c = Console.ReadLine().ToCharArray();
List<char> l = new List<char>();
for (int i = c.Length; i > 0 ; i--)
{
 l.Add(c[i-1]);
}
Console.Write(new string(l.ToArray()));

와 같이 변경할 수도 있을 것입니다.




하지만, .Net Framework 3.5에서는 굉장한 Enumerable.Reverse(TSource) Generic Method 를 지원하기 시작하였습니다. 메서드는
http://msdn2.microsoft.com/en-us/library/bb358497.aspx 에서 조금 더 자세하게 찾아보실 수 있으시구요.

이 하나의 메서드를 통해서,
위에 산더미 만했던 코드를 단 한줄로 획기적으로 줄여드립니다!!!!

Console.WriteLine(new string(Console.ReadLine().ToCharArray().Reverse().ToArray()));

Reverse 메서드는 열거가 가능한 형식이 데이터 타입에서 사용이 가능하며, 열거의 순서를 거꾸로 하여 반환하여 주는 처리를 진행합니다 ^^

정말 놀랍지 않나요?

물론 .Net Framework 3.5가 있어야겠지만 말입니다 ^^;

위의 3 코드는 완벽하게 동일한 결과를 출력하는 코드이며, 실행시 화면은 다음과 같습니다.




 

참 Array에 static으로 있는 Reverse 메서드를 이용한다면, (1.1이나 2.0에서)
아래와 같이 짤 수도 있습니다.

            char[] c = Console.ReadLine().ToCharArray();
            Array.Reverse(c);
            Console.WriteLine(new string(c));



서동진(thisisx)
2008.01.15

신고
Posted by 서동진


티스토리 툴바