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

■ 공백 문자를 제거하는 방법을 보여준다.

TestProject.zip
0.00MB

▶ TestProject.csproj

<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>net6.0</TargetFramework>
        <ImplicitUsings>enable</ImplicitUsings>
        <Nullable>disable</Nullable>
        <AllowUnsafeBlocks>True</AllowUnsafeBlocks>
    </PropertyGroup>
</Project>

 

▶ Program.cs

namespace TestProject;

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

    #region 공백 문자 제거하기 - RemoveWhitespace(source)

    /// <summary>
    /// 공백 문자 제거하기
    /// </summary>
    /// <param name="source">소스 문자열</param>
    /// <returns>공백 문자 제거 문자열</returns>
    private static unsafe string RemoveWhitespace(string source)
    {
        fixed(char* sourcePointer = source)
        {
            char* targetPointer = sourcePointer;

            for(char* pointer = sourcePointer; *pointer != 0; pointer++)
            {
                switch(*pointer)
                {
                    case '\u0020' :
                    case '\u00A0' :
                    case '\u1680' :
                    case '\u2000' :
                    case '\u2001' :
                    case '\u2002' :
                    case '\u2003' :
                    case '\u2004' :
                    case '\u2005' :
                    case '\u2006' :
                    case '\u2007' :
                    case '\u2008' :
                    case '\u2009' :
                    case '\u200A' :
                    case '\u202F' :
                    case '\u205F' :
                    case '\u3000' :
                    case '\u2028' :
                    case '\u2029' :
                    case '\u0009' :
                    case '\u000A' :
                    case '\u000B' :
                    case '\u000C' :
                    case '\u000D' :
                    case '\u0085' : continue;
                    default       : *targetPointer++ = *pointer; break;
                }
            }

            return new string(sourcePointer, 0, (int)(targetPointer - sourcePointer));
        }
    }

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

    /// <summary>
    /// 프로그램 시작하기
    /// </summary>
    [Obsolete]
    private static void Main()
    {
        string source = "넓은 벌 동쪽 끝으로\r\n옛이야기 지줄대는 실개천이 회돌아 나가고,\r\n얼룩백이 황소가\r\n해설피 금빛 게으른 울음을 우는 곳,\r\n";
        string target = RemoveWhitespace(string.Copy(source));

        Console.WriteLine(source);
        Console.WriteLine(target);

        /*
        넓은 벌 동쪽 끝으로
        옛이야기 지줄대는 실개천이 회돌아 나가고,
        얼룩백이 황소가
        해설피 금빛 게으른 울음을 우는 곳,

        넓은벌동쪽끝으로옛이야기지줄대는실개천이회돌아나가고,얼룩백이황소가해설피금빛게으른울음을우는곳,
        */
    }

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

댓글을 달아 주세요