본문 바로가기
프로그래밍/C#

C# 문자열 정렬하기

by bantomak 2024. 1. 15.

문자열 정렬하기

알고리즘을 풀 거나한 몇몇 상황에서 문자열 정렬이 필요한데, 알아두면 유용하게 사용이 가능하다.

최근 알고리즘 문제에서 문자열 정렬만 하면 되는데 갑자기 버블 정렬을 하고 있는 나를 발견할 수 있었다.

 

우선 문자열을 정렬하기 위해서는 각각의 문자로 분리하여야 한다. char의 배열로 변환한 후에 정렬해준다.

 

public static class StringExtensions
{
    public static string Sort(this String input)
    {
        char[] chars = input.ToCharArray();
        Array.Sort(chars);

        return new string(chars);
    }
    
    public static string SortDesc(this String input)
    {
        char[] chars = input.ToCharArray();
        Array.Sort(chars, (x, y) => y.CompareTo(x));

        return new string(chars);
    }
}

public class Program
{
    static void Main(string[] args)
    {
        string X = "12321";

        var temp = X.Sort();
        Console.WriteLine(temp);  // 11223
        
        var temp2 = X.SortDesc();
        Console.WriteLine(temp2); // 32211
    }
}

 

오름차순과 내림차순을 구분해서 별도의 확장 메서드로 구현하였다.

 

같이 보면 좋은 글

 

C# 확장 메서드(Extension Method)에 대해서

메서드 첫 번째 인자로 this가 보여서 당황스러울 때 이는 C#이 제공하는 확장 메서드로 이름 그대로 추가적인 메서드를 추가할 수 있습니다. 클래스, 자료구조, 인터페이스에 수정(modifying)이나

jettstream.tistory.com

 

참고 사이트

 

C#에서 문자열의 문자를 알파벳순으로 정렬합니다.

이 문서에서는 C#에서 알파벳 순서로 문자열의 문자를 정렬하는 다양한 기술을 보여줍니다. C#에서 LINQ를 사용하여 문자열의 문자를 알파벳 순서로 정렬할 수 있습니다. 아이디어는 LINQ를 사용하

www.techiedelight.com

댓글