첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
728x90
반응형
728x170

TestProject.zip
0.00MB

▶ Program.cs

namespace TestProject;

/// <summary>
/// 프로그램
/// </summary>
class Program
{
    //////////////////////////////////////////////////////////////////////////////////////////////////// Method
    ////////////////////////////////////////////////////////////////////////////////////////// Static
    //////////////////////////////////////////////////////////////////////////////// Private

    #region Field

    /// <summary>
    /// 룩업 테이블
    /// </summary>
    private static bool[] _lookupTable;

    #endregion

    //////////////////////////////////////////////////////////////////////////////////////////////////// Method
    ////////////////////////////////////////////////////////////////////////////////////////// Static
    //////////////////////////////////////////////////////////////////////////////// Private

    #region 룩업 테이블 초기화하기 - InitializeLookupTable()

    /// <summary>
    /// 룩업 테이블 초기화하기
    /// </summary>
    private static void InitializeLookupTable()
    {
        _lookupTable = new bool[65536];

        for(char c = '0'; c <= '9'; c++)
        {
            _lookupTable[c] = true;
        }

        for(char c = 'A'; c <= 'Z'; c++)
        {
            _lookupTable[c] = true;
        }

        for(char c = 'a'; c <= 'z'; c++)
        {
            _lookupTable[c] = true;
        }

        _lookupTable['.'] = true;
        _lookupTable['_'] = true;
    }

    #endregion
    #region 특수 문자 제거하기 - RemoveSpecialCharacters(source)

    /// <summary>
    /// 특수 문자 제거하기
    /// </summary>
    /// <param name="source">소스 문자열</param>
    /// <returns>특수 문자 제거 문자열</returns>
    private static string RemoveSpecialCharacters(string source)
    {
        char[] targetCharacterArray = new char[source.Length];

        int index = 0;

        foreach(char sourceCharacter in source)
        {
            if(_lookupTable[sourceCharacter])
            {
                targetCharacterArray[index] = sourceCharacter;

                index++;
            }
        }

        return new string(targetCharacterArray, 0, index);
    }

    #endregion

    #region 프로그램 시작하기 - Main()

    /// <summary>
    /// 프로그램 시작하기
    /// </summary>
    private static void Main()
    {
        InitializeLookupTable();

        string source = "adbejwlfhtABEJDGWU1.312321*&^1()";
        string target = RemoveSpecialCharacters(source);

        Console.WriteLine($"특수 문자 제거 전 : {source}");
        Console.WriteLine($"특수 문자 제거 후 : {target}");
    }

    #endregion
}
728x90
반응형
그리드형(광고전용)
Posted by icodebroker

댓글을 달아 주세요