본문 바로가기
Spring/Java

[ Java ] 문자열 자르기 - Substring, Split

by snow_hong 2022. 4. 15.

java에서는 문자열 자르기에 관련된 함수 중에 substring과 split 함수에 대해서 알아보자


 SubString 

substring함수는 인자 값에 따라서 크게 두가지 방법으로 나뉜다.

  1. substring(int index)
  2. substring(int beginIndex, int endIndex)

먼저 인자 값이 하나인 함수부터 알아보자

 

- substring(int index) 

index로 해당 위치를 포함하여 이후의 모든 문자열을 리턴 시키는 함수

index는 0부터 시작한다.

String str = "0123456789";
String str2 = "안녕하세요~ IT블로그입니다.";
        
System.out.println("substring : " + str.substring(4));
System.out.println("substring : " + str2.substring(4));
        
  ============================
  [결과]
  substring : 456789
  substring : 요~ IT블로그입니다.

 

- substring(int beginIndex, int endIndex)

beginIndex 위치에서 시작하여 endIndex 전 위치까지의 값을 리턴 시키는 함수

beginIndex - 시작 부분을 지정

endIndex - 문자열의 끝 부분 지정 (n-1까지의 위치)

String str = "0123456789";
String str2 = "안녕하세요~ IT블로그입니다.";
        
 System.out.println("substring : " + str.substring(4,8));
 System.out.println("substring : " + str2.substring(4,12));
 
 ================================================================
[ 결과 ]
substring : 4567
substring : 요~ IT블로그

 

substring 활용 예제

String str = "0123456789";
String str2 = "안녕하세요~ IT블로그입니다.";
        
System.out.println("마지막 문자제거 : " + str.substring(0, str.length()-1));
System.out.println("마지막 3글자 자르기 : " + str.substring(str.length()-3));
System.out.println("특정단어 앞부분 자르기 : " + str2.substring( str2.indexOf("IT")) );

=======================================================================
[ 결과 ]
마지막 문자제거 : 012345678
마지막 3글자 자르기 : 789
특정단어 전까지 자르기 : IT블로그입니다.

 split 

String값을 특정 문자를 기준으로 끊어서 배열에 저장시켜준다.

        String str = "사과,배,바나나";
        String[] array = str.split(",");
        
        for(int i =0; i<array.length; i++){
            System.out.println("array["+i+"] : " + array[i] );
        }
        
   =================================================================
   [ 결과 ]
	array[0] : 사과
	array[1] : 배
	array[2] : 바나나

 

 정규식을 사용한 split 

String str = "1aA2bB3cC"; 
String[] results = str.split("[0-9]");
for (int i = 0; i < results.length; i++) {
System.out.println("results[" +i + "] = " + results[i]); 
}
===========================================================
[ 결과 ]
results[0] = 
results[1] = aA
results[2] = bB
results[3] = cC

results[0] : 앞에 아무것도 없으므로 공백

results[1] : 1과 2사이에 있는 aA를 자름

...

숫자 [0-9]
알파벳 대문자 [A-Z]
알파벳 소문자 [a-z]

 


[ Substring, Split 외 문자열 추출 관련 함수]

- indexOf(String a) : a의 문자의 위치 값을 숫자로 얻음.

- int indexOf(String str) : 문자열 str를 찾아서 존재하면 첫째 문자 위치 값을 반환, 없으면 -1을 반환한다.

- lastindexOf(String a) :  a 문자를 뒤에서부터 찾아 위치 값 숫자를 얻는다.
- Char charAt(int index) : String 문자열에서 index 번째 문자 값 1개를 가져온다.

728x90

댓글