이러쿵저러쿵


종종 긴 문자열을 구분자로 구분하여 저장하는 경우가 있습니다. 또한 이러한 문자열을 필요에 따라서 다시 분리하여 사용할 경우가 있는데, 이 때에는 Split 함수를 사용하면 됩니다. (다른 언어들도 거의 비슷합니다.)

 

Split 함수를 통해 특정 구분자(delimiter)를 기준으로 문자열을 자른 후, 이 값을 배열에 저장합니다.

 

방법1)

 

// 여러 사람 이름이 세미콜론(;)을 구분자로 하여 하나의 문자열에 저장되어 있습니다. 

string sampleText = "John;Kevin;Michael;Ashley";

 

// 구분자 세미콜론);)을 인자로하여 sampleText의 String 함수인 Split 을 호출합니다.

// Split 함수의 결과는 문자열 배열로 넘어옵니다. arrText라는 문자열 배열에 결과값을 저장합니다.

string[] arrText = sampleText.Split(new char[] {';'});

 

// 배열 크기만큼 루프를 돌면서 분리된 문자열을 사용합니다.

for(int i = 0; i < arrText.Length; i++)

{

Response.Write(arrText[i] + "<br>");    // 페이지에 텍스트(이름) 출력

 

OUTPUT

 

John

Kevin

Michael

Ashley

 

 

방법2) 방법2도 특별히 다른 것은 아니고, 동일한 기능이지만 조금 다른 방식으로 Split을 사용하는 예를 보여줍니다.

 

// 숫자 영문 표기가 콤마(,)를 구분자로 하여 하나의 문자열에 저장되어 있습니다.

string sampleText2 = "One,Two,Three,Four,Five,Six,Seven,Eight,Nine";

 

// 구분자를 콤마(,)로 지정한 것을 char형 배열에 저장하고, 이 값으로 Split을 적용합니다. 위의 방법1의 두번째 줄의 코드를 2줄로 구분하여 처리한 것과 동일합니다.

char[] separator = new char[] {','}; 

string[] arrText2 = sampleText2.Split(seprator, 5);

 

// 좀 더 간편한 방식의 루프 문으로 배열 사이즈 만큼 데이터를 꺼내 루프를 돕니다. 

foreach(string selItem in arrText2)

{

Response.Write(arrText2[i] + "<br>");    // 페이지에 영문 숫자를 출력

}

 

 

OUTPUT

 

One

Two

Three

Four

Five,Six,Seven,Eight,Nine

 

방법2가 1과 조금 다른 것은 Split 함수의 2번째 인자에 숫자값 파라메터를 지정해준 것입니다. 5라는 값을 넣어줬는데, 이것은 구분자를 통해서 문자열을 분리하되 5개까지만 분리하라고 지정한 것입니다.

그러한 이유로 4번째까지는 분리 작업을 진행하고, 5번째는 나머지 문자열을 그대로 출력, 즉 위의 결과(OUTPUT)처럼 출력됩니다.

 

 

 

저작자 표시
신고

Comment +0

티스토리 툴바