본문 바로가기

Programing (프로그래밍)/WPF & C# (C Sharp)

WPF & C# - 특정 문자의 위치 추출하기 및 각 위치의 문자 추출 하기 ( char extract )

728x90
반응형
 WPF & C# - 특정 문자의 위치 추출하기 및 각 위치의 문자 추출 하기 ( char extract )

WpfApp1.zip
0.04MB

 

 

private void btn_Click(object sender, RoutedEventArgs e)
{
    // 특정문자 위치의 char 추출하기
    {
        // 특정문자  전체위치 찾기
        List<int> lstIndex = new List<int>();
        string word = tbx02.Text;
        string chr = "?";
        lstIndex = TotalIndex(word, chr);
        tbx03.Text = string.Join(", ", lstIndex);

        // 특정위치 char 추출하기
        string strOrigin = tbx01.Text;
        string strExt = Extract(strOrigin, lstIndex);
        tbx04.Text = strExt;
    }
}

/// <summary>
/// 전체 인덱싱 위치 찾기(IndexOf)
/// </summary>
/// <param name="word">문자열</param>
/// <param name="chr">찾을 문자</param>
/// <returns></returns>
List<int> TotalIndex(string word, string chr )
{
    List<int> intIndex = new List<int>();
    int searchIndex = -1;
    for (int i = 0; i < word.Count(); i++)
    {
        searchIndex = word.IndexOf(chr, searchIndex + 1);    // 다음 위치찾기
        if (searchIndex == -1) break;    // 못찾으면(-1이면) 종료
        intIndex.Add(searchIndex);
    }
    return intIndex;
}

/// <summary>
/// 특정위치 char 추출하기
/// </summary>
/// <param name="strOrigin">문자열</param>
/// <param name="lstIndex">인덱싱 위치</param>
/// <returns></returns>
string Extract(string strOrigin, List<int> lstIndex)
{
    char[] chrOrigin = strOrigin.ToArray();    // 문자열을 배열로 넣기
    string str = "";
    foreach (int i in lstIndex)
    {
        if (chrOrigin.Count() <= i) break;    // 배열범위보다 넘어서는 숫자입력 시 종료
        str += chrOrigin[i];
    }
    return str;
}

 

728x90
반응형