본문 바로가기

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

WPF & C# - 문자열 함수등 모음 ( String / Regex / 정규표현식 / 정규식 / 문자 치환 / 배열 / 갯수 / 개수 / 잘라내기 / 추출하기 / 자릿수 / 자리수 / 중간 / 숫자만 / 공백제거 / 특수문자제거 / 포함여부..

728x90
반응형

 

 

 WPF & C# - 문자열 함수등 모음 ( String / Regex / 정규표현식 / 정규식 / 문자 치환 / 배열 / 갯수 / 개수 / 잘라내기 / 추출하기 / 자릿수 / 자리수 / 중간 / 숫자만 / 공백제거 / 특수문자제거 / 포함여부 찾기 및 확인 / Substring / 대문자 / 소문자 )

 

 

 

@ 특정 문자 변경 / 치환 / 변환 / 대체 / 스왑

 

 

1
str = str.Replace("abc","cba");   // abc를 cba로 변경
cs

 

 

 

 

@ 특정 문자 기준으로 나누기 / 배열 / foreach

 

1
2
3
4
5
6
7
string str = "123.456.789";
string[] val = str.Split('.');   // .을 기준으로 나눈다. 결과값 : val[0] = 123 , val[1] = 456 , val[2] = 789
string val2 = "";
foreach (string temp in val)
{
    val2 += temp;
}   // 결과값 : val2 = 123456789
cs

 

 

@ 전체 문자열을 string[] 하나씩 넣기 / 배열 / for

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 문자열을 String[] 에 넣기
string word = "ABCDE";   // 문자열
string[] words = arrayStr(word);   // string[] word 에 넣기
 
// 문자열을 String[] 에 넣기
private string[] arrayStr(string word)
{
    string[] words = new string[word.Length];
    for (int i = 0; i < word.Length; i++)
    {
        words[i] = word.Substring(i, 1);
    }
 
    return words;
}
cs

 

 

@ 전체 문자열을 char 에 하나씩 넣기 / 배열 / for

 

1
2
3
string words = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
char[] word = words.ToArray();
 
cs

 

 

 

 

 @ 특정 문자 개수 세기

 

1
2
3
4
string word = "1";   // 검색어 지정
string str = "126413571689";   // 전체 문자열
string[] words = str.Split(new string[] { word }, StringSplitOptions.None);  // str을 word로 잘라서 배열을 만들고 그 숫자를 센다.
int count = words.Length - 1; // 결과값 = 3
cs

 

 

 

 

 

@ 문자열 추출하기 ( 자릿수 기준)

  

 

문자열 시작부터 자리수만큼 추출하기

 

1
2
string str = "3214601485";
string val = str.Substring(0,5);   // 시작부터 5자리 추출( 결과값 32146)

 

 

 

@ 문자열 중간부터 자리수만큼 추출하기

 

1
2
3
string str = "3214601485";
string val = str.Substring(53);   // 앞에서 5자리 제하고부터 3자리를 추출( 결과값 : 014 )
 
cs

 

 

@ 문자열 끝부터 자리수만큼 추출하기

 
1
2
string str = "3214601485";
string val = str.Substring(str.Length - 3, 3); // 뒤에서 3자리만 추출 ( 결과값 : 485 )
cs

 

 

@ 문자열 추출하기 ( 특정 문자 기준)

 

@ 시작부터 특정 문자 앞까지 추출하기

1
2
string str = "3214601485";   // 문자열
string val = str.Substring(0str.IndexOf("0"));   // 결과값 : 32146
cs

 

@ 첫번째 특정 문자부터 기준으로 추출하기

string val = "";    // 결과값
string str = "3214601485";
val = str.Substring(str.IndexOf("1"), 3);   // 첫번째 문자열포함 3자리 추출하기( 결과값 : 146 )
val = str.Substring(str.IndexOf("1") + 1, 3);   // 첫번째 문자열제외 3자리 추출하기( 결과값 : 460 )

@ 마지막 특정 문자부터 기준으로 추출하기

string val = "";    // 결과값
string str = "3214601485";
val = str.Substring(str.LastIndexOf("1"), 3);   // 마지막 문자열포함 3자리 추출하기( 결과값 : 148 )
val = str.Substring(str.LastIndexOf("1") + 1, 3);   // 마지막 문자열제외 3자리 추출하기( 결과값 : 485 )

 

 

 

 

 

@ 특정 문자를 찾아서 중간부분 반환하기

1
2
3
4
5
6
7
string val = "";   // 결과값
string str = "3214601485";   // 문자열
int stt_str = str.IndexOf("1");   // 검색어1
int end_str = str.IndexOf("8");   // 검색어2
val = str.Substring(stt_str, (end_str + 1- stt_str);   // 결과값 : 1460148 (검색어 1, 2 포함)
val = str.Substring(stt_str, end_str - stt_str);   // 결과값 : 146014 (검색어 1 포함)
val = str.Substring(stt_str + 1, (end_str - 1- stt_str);   // 결과값 : 46014 (검색어 제외)
cs

 

@ 특정 문자부터 끝까지 추출하기

1
2
string str = "3214601485";   // 문자열
string val = str.Substring(str.IndexOf("0"));   // 결과값 : 01485
cs

 

 

 

@ 문자열 잘라내기 ( 자릿수 기준 )

 

 
문자열 시작부터 자리수만큼 잘라내기
 
1
2
string str = "3214601485";
string val = str.Substring(3);   // 앞에서 3자리 잘라내기( 결과값 : 4601485 )
cs

 
 
문자열 끝부터 자리수만큼 잘라내기
 
1
2
string str = "3214601485";
string val = str.Substring(0, str.Length - 4);   // 끝에서 4자리 잘라내기( 결과값 : 321460 )
cs

 

@ 문자열 잘라내기 ( 특정문자기준 )

string val = "";    // 결과값
string str = "192.168.0.1";
val = str.Substring(str.LastIndexOf("."));   // 끝에서 특정문자 앞부분 잘라내기( 결과값 : .1 )
val = str.Substring(str.LastIndexOf(".") +1);   // 끝에서 특정문자포함 앞부분 잘라내기( 결과값 : 1 )
val = str.Substring(0, str.LastIndexOf(".") + 1);   // 끝에서 특정문자포함 끝까지 잘라내기( 결과값 : 192.168.0. )
val = str.Substring(0, str.LastIndexOf(".") + 1) + "1";   // 게이트웨이 입력하기 ( 결과값 : 192.168.0.1 )

 

 

@ 문자열 포함여부 찾기 및 확인

 

문자열 포함여부 찾기 및 확인
 
1
2
3
4
5
string str = "3214601485";
if (str.Contains("014"== true)
{
    MessageBox.Show("포함");
}
cs
 
1
2
3
4
5
string str = "3214601485";
if (str.Contains("014"))
{
    MessageBox.Show("포함");
}
cs
 

@ 특정 문자 포함여부

 

1
2
3
4
if(str.IndexOf("abc">=0)   // 문자열에 abc가 포함되어 있는지 확인
{
      // TODO: 
}
cs

 

 

 

@ 문자열 자르기 / 특정 문자가 두자리 이상이라면? 

 

@@@ 아래와 같은 결과 값을 가져온다... 헷갈린다...

1
2
3
4
5
6
7
string val = "";   // 결과값
string str = "3214601485";   // 문자열
int stt_str = str.IndexOf("14");   // 검색어1
int end_str = str.IndexOf("48");   // 검색어2
val = str.Substring(stt_str, end_str - stt_str + 1);   // 결과값 : 146014
val = str.Substring(stt_str, end_str - stt_str);   // 결과값 : 14601
val = str.Substring(stt_str + 1, end_str - stt_str - 1);   // 결과값 : 4601
cs

 

 

@@@ 둘 이상의 문자라면 아래와 같이 변경해주자~!!! ^^

 

1
2
3
4
5
6
7
8
9
10
string val = "";   // 결과값
string str = "3214601485";   // 문자열
string stt_word = "14";   // 검색어1
string end_word = "48";   // 검색어2
 
int stt_str = str.IndexOf(stt_word);   // 검색어1
int end_str = str.IndexOf(end_word);   // 검색어2
val = str.Substring(stt_str, end_str - stt_str);   // 결과값 : 14601 (검색어1 포함)
val = str.Substring(stt_str + stt_word.Length, end_str - stt_str);   // 결과값 : 60148 (검색어2 포함)
val = str.Substring(stt_str, end_str - stt_str + end_word.Length);   // 결과값 : 1460148 (검색어1, 2 포함)
cs

 

 

@@@ 특정 기준 문자열 제거하고 추출하기

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
string str = "(6)update(10)googleapis(3)com(0)";
string beforeWord = ")";
string afterWord = "(";
string Word = "";
 
string[] splitDatas = str.Split(new string[] { beforeWord }, StringSplitOptions.None);
foreach (string s in splitDatas)
{
    string keyWord = s.Split(new string[] { afterWord }, StringSplitOptions.None)[0];
    Word += keyWord + " ";
}
Word = Word.Trim();
Word = Word.Replace(' ''.');
MessageBox.Show(Word);   // update.googleapis.com
cs

 

 

@ 문자열 공백제거

 

1
2
3
4
5
6
7
8
string str = str.TrimStart();   // 문자열 앞쪽 공백제거
string str = str.TrimEnd();   // 문자열 뒤쪽 공백제거
 
string str = str.Trim();   // 문자열 앞뒤 공백 모두 제거
 
// 모든 공백제거는?
string str = str.Replace(" """)   // 문자변경(치환)을 이용한다.
 
cs

 

 

 

@ RegularExpressions Regex 정규표현식 활용하기 ( 정규식 )

 

@ 문자열 속의 숫자만 추출하기 / 숫자이외의 문자열 치환하기

 

1
2
3
4
5
using System.Text.RegularExpressions;
 
string str = "A1B2C3";
string val = Regex.Replace(str, @"\D""");   // 결과값 : 123
string val = Regex.Replace(str, @"\D""Z");   // 결과값 : Z1Z2Z3
cs

 

자료 : https://msdn.microsoft.com/ko-kr/library/system.text.regularexpressions.regex(v=vs.110).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-1

 

@ 숫자만있는지 확인하기

int i = 0;
string s = "108";
bool result = int.TryParse(s, out i);    //i now = 108

자료 : docs.microsoft.com/ko-kr/dotnet/csharp/programming-guide/strings/how-to-determine-whether-a-string-represents-a-numeric-value

 

@ IP형식에 맞는지 확인하기

string connIP = "192.168.0.1";
System.Net.IPAddress ip;
bool isIP = System.Net.IPAddress.TryParse(connIP, out ip);
if (isIP) { }    // IP 형식에 맞는지 여부

@ SubNet IP 넣기

 

string connIP = "192.168.0.1";
System.Net.IPAddress ip;
bool isIP = System.Net.IPAddress.TryParse(connIP, out ip);
if (isIP) { }    // IP 형식에 맞는지 여부

 

 

 

https://regexr.com/ 

https://insurang.tistory.com/175

https://m.blog.naver.com/blogpyh/220226080485

 

 

@ 특수문자제거

 

1
2
string str = "A1@!+B2C3";
string str = System.Text.RegularExpressions.Regex.Replace(str"[^0-9a-zA-Zㄱ-힗]+"""); // 결과값 : A1B2C3
cs

 

@ 대소문자로 변환하기 - 대문자

 

1
2
string str = "aAbBcC";
string str = str.ToUpper(); // 결과값 : AABBCC
cs

 

@ 대소문자로 변환하기 - 소문자

 

1
2
string str = "aAbBcC";
string str = str.ToLower(); // 결과값 : aabbcc
cs

 

 

 

 

 

 

 

728x90
반응형