728x90
반응형
WPF & C# - 특정 문자의 위치 추출하기 및 각 위치의 문자 추출 하기 ( char extract ) |
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
반응형