본문 바로가기

IT프로그래밍

[C#]String 메서드 split에서 문자열로 분리 시키는 방법

 

C# 문자열 메서드 중 하나인 split에 대해 알아보겠습니다.

split의 사전적 의미는 [분리시키다, 나누다] 입니다.

사전적 의미에서 바로 알 수 있듯이 스플릿 함수는 문자열을 분리시켜주는 기능을 수행합니다.

실제 프로그래밍을 하기전, 이해를 돕기위해 간략한 글로 예를 들어보겠습니다.

 

 

나는^프로그래밍을^공부하는중^입니다.

라는 문자열이 있습니다. 이 문자열을 ^을 기준으로 분리한다고 하면

 

1.나는

2.프로그래밍을

3.공부하는중

4.입니다.

 

로 4개로 분리가 되는 것이죠.

또한 .split 메서드는 ' ' 공백을 나눌 수도 있습니다.

 

안녕하세요 만나서 반갑습니다!

라는 문자열을 ' '(공백)을 기준으로 나누면

1.안녕하세요

2.만나서

3.반갑습니다!

 

로 3개로 분리가 됩니다.

 

C# 소스코드를 통해서 위에서 말씀드린 것을 구현 하면 다음과 같습니다.


소스 코드

public void doSplit()
{
    string original = "나는^프로그래밍을^공부하는중^입니다.";
    string[] split_data = original.Split('^');
}

.Split메서드의 반환형은 string[]을 사용합니다.

파라미터를 기준으로 분리된 문자열들이 string배열의 0번 인덱스부터 들어가기 때문이죠.

 

소스 코드 실행 결과

 

'^'를 기준으로 split을 수행한 결과 4등분되어 배열의 0번 인덱스부터 값이 들어간 것을 확인할 수 있습니다.


 

 

 

 

두번째 예시 또한 같은 방법으로 테스트 해보겠습니다.


소스 코드

public void doSplit()
{
	string original = "안녕하세요 만나서 반갑습니다!";
	string[] split_data = original.Split(' ');
}

이번에는 Split(' ')으로, 문자열을 분리시킬 파라미터로 공백을 주었습니다.

 

소스 코드 실행 결과


잘 실행된것을 확인 할 수 있습니다.

 

split메서드는 char형 뿐만 아니라 string형을 파라미터로 지정하여

문자를 분리할 수 있습니다.

 

나는[테스트]밥을[테스트]먹고[테스트]있습니다.

라는 문자열이 있다고 가정했을 때,

파라미터 : [테스트] 로 스플릿을 실행하면

1.나는

2.밥을

3.먹고

4.있습니다.

의 결과가 나오겠죠?

 

이것은 char를 파라미터로 주는 .split메서드의 기본적인 사용법과는 조금 다릅니다.

소스 코드를 통해 보여드리겠습니다.


소스 코드

public void doSplit()
{
    string original = "나는[테스트]밥을[테스트]먹고[테스트]있습니다.";
    string[] split_data = original.Split(new string[] {"[테스트]"}, StringSplitOptions.None);
}

 

소스 코드 실행 결과


위의 결과 처럼 C#에서는 Split의 파라미터를 문자열로 지정하여

사용이 가능합니다.

 

마지막으로 윈폼 스플릿 예제 소스코드, 프로젝트 첨부하며 포스팅을 마칩니다.


소스 코드

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        public void doSplit()
        {
            string original = textBox1.Text;
            string[] split_data = original.Split(new string[] {string.Format("{0}", textBox3.Text) }, StringSplitOptions.None);

            string result = "";
            for(int i = 0; i < split_data.Count(); i++)
            {
                result += string.Format("{0}.{1}\r\n", i, split_data[i]);
            }
            textBox2.Text = result;
            
        }

        private void button1_Click(object sender, EventArgs e)
        {
            doSplit();
        }


    }
}

 

소스 코드 실행 결과


Split예제.zip
0.05MB