본문 바로가기
Program Language/C#

Part1. C# 첫발 내딛기(21. String.Split() 문자열 분리)

by 토담이아빠 2023. 1. 13.

String.Split() 문자열 분리

 

이번 포스팅에서는 String.Split()을 이용하여 문자열 분리하고 사용하는 방법을 간단한 예제와 함께 정리했습니다.


String.Split()

 

String.Split()을 이용하면 원하는 문자열들을 분리할 수 있습니다. 예를 들어 숫자형 문자열일 경우 개별 숫자들로 분리해서 더하는 작업을 수행할 수 있습니다. 이에 대한 예제로 다음과 같이 입력받은 여러 개의 숫자들을 더해서 결과를 출력하는 프로그램을 만들어 보겠습니다. 입력 숫자들은 공백으로 구분하며, enter키를 입력할 때까지 입력을 받습니다.


더하고자 하는 숫자들을 입력하세요 : 1 3 5 7 10
결과는 26입니다.

콘솔에서 값을 입력받을 때는  Console.ReadLine() 함수를 사용합니다. enter가 입력될 때까지 입력되는 한 줄을 하나의 문자열로 저장합니다. 위 예에서는 "1 3 5 7 10"이 하나의 문자열이 됩니다. 계산을 위해서는 숫자들을 추출해야 하는데 이때 사용하는 메서드가 Split()입니다. 

 

s.Split('.')과 같이 구분하고자 하는 문자를 매개변수로 전달할 수 있습니다. Split()메소드는 구분하고자 하는 문자를 여러 개 지정할 수 있습니다. 예를 들어 빈칸, 콤마, '-'기호로 구분하고자 하면 다음과 같이 문자 배열로 만들어서 Split()에 매개변수로 전달해 주면 됩니다.


char[] delimiters = {',', ' ', '-', '+'};
string[] v = s.Split(delimiters);

다음은 위에서 언급한 입력받은 숫자들을 더하여 그 결과를 출력하는 프로그램입니다.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SplitMethod
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.Write("더하고자 하는 숫자들을 입력하세요: ");
            string s = Console.ReadLine();
            Console.WriteLine("입력하신 숫자는 다음과 같습니다.");
            Console.WriteLine(s);

            int sum = 0;
            string[] v = s.Split(); //디폴트 구분문자는 공백입니다.
            foreach(var i in v)
            {
                sum += int.Parse(i);
            }
            Console.WriteLine("결과는 {0} 입니다.", sum);
        }
    }
}

결과

더하고자 하는 숫자들을 입력하세요: 15 20 11 22 13 8 100 210
입력하신 숫자는 다음과 같습니다.
15 20 11 22 13 8 100 210
결과는 399 입니다.

Split()의 기본 구분문자는 ' '(공백)입니다. 매개변수로  ' '을 직접 전달해도 결과는 같습니다. 그리고 배열의 개수를 모를 때는 foreach() 문을 쓰는 것이 좋습니다. 

 


[Review]

"초보자를 위한 C# 200제(2판)"  저자 / 강병익

댓글