본문 바로가기

C#/문자열

문자열을 검색하고 추출하는 방법

1. 부분 문자열을 검색하고 위치를 구하는 방법

 

IndexOf 메서드는 인수로 전달받은 부분 문자열이 문자열 안에서 처음 발견된 위치(0에서 시작하는 인덱스로 표시)를 반환한다.

var target = "Name=Note9;Company=SAMSUNG";
var index = target.IndexOf("Company=");

 

"Company="가 있는 위치(0에서 시작함)를 구한다.

index에는 11이 대입된다.

 

SubString, Remove, Insert처럼 인덱스를 인수로 받는 메서드호출할 때 이 IndexOf 메서드를 이용하게 된다.

 

 

2. 문자열의 일부를 추출하는 방법

 

아래는 문자열의 일부를 추출하는 코드이다.

var target = "Name=Note9;Company=SAMSUNG";
var value = "Company=";
var index = target.IndexOf("Company=") + value.Length;
//부분 문자열 추출
var company = target.Substring(index);

 

"Company="의 'C'의 인덱스에 문자열의 길이(value.Length)를 더해서 시작 위치(위 코드에서는 SAMSUNG의 시작 위치)를 구할 수 있다.

위의 코드를 실행하면 company에 "SAMSUNG"이 대입된다.

 

 

추출할 부분 문자열의 길이를 지정하여 Substring 메서드를 사용할 수도 있다.

var target = "Name=Note9;Company=SAMSUNG;Price=100";
var value = "Company=";
var startIndex = target.IndexOf("Company=") + value.Length;
var endIndex = target.IndexOf(“;”, startIndex);
//startIndex : 시작 위치, endIndex - startIndex : 추출할 길이

var company = target.Substring(startIndex, endIndex - startIndex);

 

위 코드를 실행하면 끝부분 문자열이 아니더라도 문자열을 추출할 수 있다.