성장일기

 알고리즘 문제를 풀다보면 문자열을 잘라서 사용해야 하는 경우가 있다. 자바에서 문자열을 자르는 방법중에 대표적인 방법으로 Substring과 Split함수가 있다. 둘의 차이점은 Substring은 인덱스를 기준으로 문자열을 잘라 문자열을 반환하고, Split은 사용자가 지정한 특정 기준으로 문자열을 잘라 배열로 반환한다.

 

1. Substring


사용법

//사용법
String.substring(start) //문자열  start위치부터 끝까지 문자열 자르기
String.substring(start,end) //문자열  start위치 부터 end전까지 문자열 발췌
		

//예제
String str = "ABCDEFG"; //대상 문자열
/*A=0 B=1 C=2 D=3 E=4 F=5 G=6의 index를 가진다.*/
		
str.substring(3); 
/*substring(시작위치) 결과값 = DEFG*/

str.substring(3, 6); 
/*substring(시작위치,끝위치) 결과값 = DEF*/

 

활용예제

//1. 마지막 3글자 자르기
String str = "ABCDEFG"; 
String result = str.substring(str.length()-3, str.length());
System.out.println(result)
 //결과값EFG



//2. 특정문자 이후의 문자열 제거
String str = "ABCD/DEFGH";
String result = str.substring(str.lastIndexOf("/")+1);
System.out.println(result); 
//결과값 DEFGH



//3. 특정단어(부분)만 자르기
String str = "바나나 : 1000원, 사과 : 2000원, 배 : 3000원";
String target = "사과";
int target_num = str.indexOf(target); 
String result; result = str.substring(target_num,(str.substring(target_num).indexOf("원")+target_num));
System.out.println(result+"원"); 
//결과값 : 사과 : 2000원

 

2. Split


사용법

//문법
문자열배열 = 대상문자열.split("기준문자");

//예제
String str = "";

for(int i=0;i<5;i++) {
str += i+"#";
}
		
String[] array = str.split("#");
		
for(int i=0;i<array.length;i++) {
System.out.println(array[i]);
}

//결과값 
//array[0] = 1
//array[1] = 2
//array[2] = 3
//array[3] = 4

활용예제

//1. 쉼표(,)로 문자열 잘라서 배열에 넣기
String str = "A,B,C,D";
String[] array = str.split(",");
		    
//출력				
for(int i=0;i<array.length;i++) {
System.out.println(array[i]);
}
		  
//결과값 
//array[0] = A
//array[1] = B
//array[2] = C
//array[3] = D

/*---------------------------------------------------------------------------------------------*/

//2. 공백(" ")으로 문자열 잘라서 배열에 넣기
String str = "동해물과 백두산이 마르고 닳도록 하나님이 보우하사 우리나라 만세";
String[] array = str.split(" ");
		    
//출력				
for(int i=0;i<array.length;i++) {
System.out.println(array[i]);
}
		  
//결과값 
//array[0] = 동해물과
//array[1] = 백두산이
//array[2] = 마르고
//array[3] = 닳도록
//array[4] = 하나님이
//array[5] = 보우하사
//array[6] = 우리나라
//array[7] = 만세

 

출처: [Java] 문자열 자르기(Substring, Split) 사용법 & 예제 (tistory.com)

공유하기

facebook twitter kakaoTalk kakaostory naver band