string.Split()
으로 문자열을 특정 구분자(delimiter)로 분리하여 문자열 배열로 변환하는 방법을 소개합니다.
예를 들어, Split()
은 아래 input과 같은 문자열을 ,
를 구분자로 분리하여 output 배열과 같이 여러 문자열로 분리할 수 있습니다.
input: "Hello,World,C#"
output: ["Hello", "World", "C#"]
1. Split(delimiter)으로 문자열 분리
string.Split(delimiter)
은 문자열에서 구분자(delimiter)로 문자열을 분리하여 배열로 리턴합니다.
아래 코드는 구분자 " "
와 ","
로 분리하여 두개의 결과를 출력하는 예제입니다. 구분자로 분리했을 때, 문자열에 공백이 포함될 수 있습니다.
using System;
namespace Example {
public class Program {
public static void Main(string[] args) {
string str = "Hello, world, C#";
string[] result1 = str.Split(" ");
string[] result2 = str.Split(",");
Console.WriteLine("result1:");
foreach(String s in result1) {
Console.WriteLine(s);
}
Console.WriteLine("result2:");
foreach(String s in result2) {
Console.WriteLine(s);
}
}
}
}
Output:
result1:
Hello,
world,
C#
result2:
Hello
world
C#
만약 분리된 문자열에 공백을 제거하고 싶다면, 사용할 때 Trim()
으로 앞 뒤 공백을 제거할 수 있습니다.
Console.WriteLine("result1:");
foreach(String s in result1) {
Console.WriteLine(s.Trim());
}
Console.WriteLine("result2:");
foreach(String s in result2) {
Console.WriteLine(s.Trim());
}
Output:
result1:
Hello,
world,
C#
result2:
Hello
world
C#
2. Split(delimiter, count)로 최대 문자열 개수 제한
Split(delimiter, count)
은 구분자로 문자열을 분리하는데, 분리된 문자열 개수를 최대 count까지로 제한하는 설정입니다.
아래 예제에서
Split(" ", 1)
는 분리된 문자열 개수를 1로 제한하기 때문에, 아무것도 분리하지 못하여 배열에 전체 문자열 1개만 포함됩니다.Split(",", 3)
는 분리된 문자열 개수를 3으로 제한하기 때문에, 문자열을,
로 2번 분리하여 생성된 3개의 문자열을 배열에 추가하고 리턴합니다.
using System;
namespace Example {
public class Program {
public static void Main(string[] args) {
string str = "Hello, world, C#, learning";
string[] result1 = str.Split(" ", 1);
string[] result2 = str.Split(",", 3);
Console.WriteLine("result1:");
foreach(String s in result1) {
Console.WriteLine(s);
}
Console.WriteLine("result2:");
foreach(String s in result2) {
Console.WriteLine(s);
}
}
}
}
Output:
result1:
Hello, world, C#, learning
result2:
Hello
world
C#, learning
3. 여러 delimiter로 문자열 나누기
Split(delimiters, option)
는 구분자 배열을 인자로 받으며, 배열에 있는 모든 구분자로 문자열을 분리합니다.
아래 예제에서 separators 배열에 있는 3개의 구분자로 문자열을 분리하여 배열로 리턴합니다.
StringSplitOptions.None
옵션은 분리된 문자열에 빈 문자열이 포함될 수 있다는 옵션입니다.
using System;
namespace Example {
public class Program {
public static void Main(string[] args) {
string str = "Hello, world. C#! learning";
string[] separators = {",", ".", "!"};
string[] result = str.Split(separators, StringSplitOptions.None);
Console.WriteLine("result:");
foreach(String s in result) {
Console.WriteLine(s);
}
}
}
}
Output:
result:
Hello
world
C#
learning
4. 여러 delimiter로 문자열 나누기 + 최대 문자열 개수 제한
Split(delimiters, count, option)
은 문자열을 delimiters 배열로 분리하는데, 분리된 문자열의 개수가 최대 count 개수로 제한하는 것입니다.
동작은 위에서 설명한 Split(delimiter, count)
와 동일합니다.
using System;
namespace Example {
public class Program {
public static void Main(string[] args) {
string str = "Hello, world. C#! learning";
string[] separators = {",", ".", "!"};
string[] result = str.Split(separators, 3, StringSplitOptions.None);
Console.WriteLine("result:");
foreach(String s in result) {
Console.WriteLine(s);
}
}
}
}
Output:
result:
Hello
world
C#
learning
Related Posts
- C# 바이트(Byte) 배열을 문자열로 변환
- C# String.format() 함수 알아보기
- C# - foreach (Array, List, Dictionary)
- C# 프로퍼티(Property) Get/Set 함수
- C# - Dictionary에서 key, value 가져오기
- C# - Dictionary 순회, foreach, for 루프
- C# - Dictionary에서 key, value 삭제
- C# - Dictionary.add()로 데이터 추가
- C# - Dictionary 선언 및 초기화
- C# - 문자열을 Double, Float으로 변환
- C# - 문자열을 리스트로 변환
- C# - 두 날짜/시간 비교, DateTime.Compare()
- C# - 날짜 계산, DateTime 시간 더하기 빼기
- C# - 날짜 문자열을 DateTime으로 변환
- C# - Sleep, 몇 초간 지연시키기
- C# - Timestamp(millisecond)를 DateTime 객체로 변환
- C# - 현재 시간 가져오기, DateTime
- C# - 문자열 리스트를 문자열로 변환
- C# - 리스트 복사 (얕은 복사, 깊은 복사)
- C# - 2차원 리스트 선언 및 초기화
- C# - 리스트 선언 및 초기화
- C# - 리스트 길이, 크기 가져오기
- C# - 리스트 합계, 평균 계산
- C# - 리스트 요소 제거 (RemoveAt, RemoveAt, RemoveAll)
- C# - 리스트에서 빈 문자열, null 제거
- C# - 리스트 두개로 분리, n개로 나누기
- C# - 문자열 뒤집기, Reverse()
- C# - 2차원 배열 복사, Clone
- C# - 문자열 배열을 문자열로 변환
- C# - 2차원 배열 선언, 초기화 방법
- C# - 배열 길이, 2차원 배열 길이
- C# - 두개의 배열을 하나로 합치기
- C# - 배열 중복 요소 제거
- C# - 배열에서 특정 요소 제거
- C# - Int 배열 정렬 (오름차순, 내림차순)