본문 바로가기
프로그래밍 언어/C#

[C#] 문자열 자르기(Substring, Split)

by Jinwood 2021. 4. 20.
반응형

코딩을 하다 보면 문자열 자르거나 일부 문자열을 받아와야 하는 경우가 있다. 이때 Substring() 또는 Split을 이용하면 편리하다. Substring은 입력된 문자열의 일부를 return 하는 메서드이고, Split은 입력된 문자열을 입력 문자(또는 문자열)로 분할하는 것이다.

 

1. Substring()

Substring() 메서드는 2가지로 사용할 수 있다.

  1. Substring(int startIndex) : 시작 인덱스부터 나머지 모든 문자열 return
  2. Substring(int startIndex, int length) : 시작 인덱스부터 입력된 길이까지 문자열 return

아래 코드는 "1234567890" 이라는 문자열을 Substring() 메서드를 이용해서 자른 결과이다. 설명은 코드 아래에 추가하였다.

 

1
2
3
4
5
6
7
8
string numbers = "1234567890";
 
string sub1 = numbers.Substring(4);
// 결과 : "567890"
 
string sub2 = numbers.Substring(42);                                        
// 결과 : "56"
 
cs

 

  1. sub1 결과 : 인덱스는 0부터 시작하므로 startIndex = 4라면 5번째 문자인 "5"부터 시작한다. length 값을 입력하지 않았으므로 나머지 모든 문자열을 반환한다.
  2. sub2 결과 : startIndex = 4 이므로 "5"부터 시작하여 2개만큼의 문자열을 반환한다.

 

Substring은 일반적인 문자열을 자를 때 보다 아래와 같이 파일 경로를 이용할 때 보다 유용한 것 같다. DirectoryInfo 또는 FileInfo 클래스를 사용하여 파일의 디렉터리 경로나 확장자를 확인하는 방법도 있지만, 아래 코드처럼 Substring() 메서드를 이용해서 디렉터리 경로, 확장자를 확인할 수도 있다.

 

1
2
3
4
5
6
7
8
string filePath = @"C:\Users\admin\Desktop\test.txt";
 
string dirPath = filePath.Substring(0, filePath.LastIndexOf('\\'));
// 결과 : "C:\\Users\\admin\\Desktop"
 
string fileExtension = filePath.Substring(filePath.LastIndexOf('.')+1);                
// 결과 : "txt"
 
cs

 

  1. dirPath : filePath의 시작부터 마지막 역슬래시('\')까지 문자열을 반환하여 디렉토리 경로로 사용
  2. fileExtension : filePath의 마지막 점('.') +1 의 위치부터 나머지 문자열을 반환하여 확장자로 사용

Substring(int startIndex, int length) 를 사용할 경우에는 length 값이 문자열의 길이보다 클 경우 에러가 발생하므로 반드시 문자열 길이를 확인해야 한다.

2. Split

Split은 입력된 문자열에 존재하는 특정 문자(또는 문자열)를 이용하여 입력된 문자열을 분할하는 것이다. 

 

1
2
3
4
5
6
7
8
9
10
string filePath = @"C:\Users\admin\Desktop\test.txt";                                
 
string[] splitedPath = filePath.Split('\\');
// 결과 : 
//       splitedPath[0] : "C:"    
//       splitedPath[1] : "Users"    
//       splitedPath[2] : "admin"    
//       splitedPath[3] : "Desktop"    
//       splitedPath[4] : "test.txt"    
 
cs

위 코드는 filePath 문자열을 char형으로 분할한 결과이다. 역슬래시로 분할된 문자열은 Array형으로 반환된다.

 

이상 설명 끝!

반응형

댓글