첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
유용한 소스 코드가 있으면 icodebroker@naver.com으로 보내주시면 감사합니다.
블로그 자료는 자유롭게 사용하세요.

■ 문자열 토큰 생성자 사용하기 예제

----------------------------------------------------------------------------------------------------

string source = "테스트 문자열 입니다.";

 

StringTokenizer stringTokenizer = new StringTokenizer(source, " ");

 

while(stringTokenizer.HasNextElement())

{

    string token = stringTokenizer.GetNextToken();

 

    Console.WriteLine(token);

}

----------------------------------------------------------------------------------------------------

 

■ 문자열 토큰 생성자 사용하기

----------------------------------------------------------------------------------------------------

/// <summary>

/// 문자열 토큰 생성자

/// </summary>

public class StringTokenizer

{

    //////////////////////////////////////////////////////////////////////////////////////////////////// Field

    ////////////////////////////////////////////////////////////////////////////////////////// Private

 

    #region Field

 

    /// <summary>

    /// 소스 문자열

    /// </summary>

    private string source;

 

    /// <summary>

    /// 분리자

    /// </summary>

    private string delimiter;

 

    /// <summary>

    /// 토큰 배열

    /// </summary>

    private string[] tokenArray;

 

    /// <summary>

    /// 인덱스

    /// </summary>

    private int index;

 

    #endregion

 

    //////////////////////////////////////////////////////////////////////////////////////////////////// Constructor

    ////////////////////////////////////////////////////////////////////////////////////////// Public

 

    #region 생성자 - StringTokenizer(source, delimiter)

 

    /// <summary>

    /// 생성자

    /// </summary>

    /// <param name="source">소스 문자열</param>

    /// <param name="delimiter">분리자</param>

    public StringTokenizer(string source, string delimiter)

    {

        Initialize(source, delimiter);

    }

 

    #endregion

    #region 생성자 - StringTokenizer(source)

 

    /// <summary>

    /// 생성자

    /// </summary>

    /// <param name="source">소스 문자열</param>

    public StringTokenizer(string source) : this(source, " ")

    {

    }

 

    #endregion

 

    //////////////////////////////////////////////////////////////////////////////////////////////////// Method

    ////////////////////////////////////////////////////////////////////////////////////////// Public

 

    #region 다음 요소 존재 여부 구하기 - HasNextElement()

 

    /// <summary>

    /// 다음 요소 존재 여부 구하기

    /// </summary>

    /// <returns>다음 요소 존재 여부</returns>

    public bool HasNextElement()

    {

        return(this.index < this.tokenArray.Length);

    }

 

    #endregion

    #region 다음 토큰 구하기 - GetNextToken()

 

    /// <summary>

    /// 다음 토큰 구하기

    /// </summary>

    /// <returns>다음 토큰</returns>

    public string GetNextToken()

    {

        string token = tokenArray[index++];

 

        while((token.Length <= 0) && (index < tokenArray.Length))

        {

            token = tokenArray[index++];

        }

 

        return token;

    }

 

    #endregion

 

    ////////////////////////////////////////////////////////////////////////////////////////// Private

    

    #region 초기화 하기 - Initialize(source, delimiter)

 

    /// <summary>

    /// 초기화 하기

    /// </summary>

    /// <param name="source">소스 문자열</param>

    /// <param name="delimiter">분리자</param>

    private void Initialize(string source, string delimiter)

    {

        this.delimiter  = delimiter;

        this.source     = source;

        this.tokenArray = this.source.Split(this.delimiter.ToCharArray());

        this.index      = 0;

    }

 

    #endregion

}

----------------------------------------------------------------------------------------------------

Posted by 사용자 icodebroker
TAG

댓글을 달아 주세요