[Java] 문자열 자르기(Substring, Split) 사용법 & 예제

자바 스트링 클래스에는 사용하기 편리하도록 만들어놓은 여러 가지 함수가 있습니다. 이번 포스팅에서는 그 함수들 중 문자열 자르기에 관련된 함수들을 한번 알아보도록 하겠습니다.

     SubString 

    문자열 자르기 하면 가장 먼저 생각나는 함수입니다. 문자열 함수에 익숙해지시면 SubString함수와 다른 함수들을 섞어서 정말 다양하게 활용할 수 있는데요. 사용법에 대해 한번 알아보도록 하겠습니다. 활용 예제로는 마지막 3글자 자르기, 특정 문자 이후의 문자열 자르기, 특정(단어) 부분만 자르기를 준비했습니다.

     

    우선 문자열을 자르기에 앞서 문자열이 어떻게 배치되어있는지 Index값부터 살펴야 문자열을 자를 수 있습니다.

    SubString

    String 클래스 자체가 char을 여러 개 붙여놓은 효과를 주기 때문에 String 클래스의 해당 Index값은 다음과 같습니다. String = char배열이라고 생각하셔도 무방합니다.

     

    사용법

    //사용법
    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 = str.substring(target_num,(str.substring(target_num).indexOf("원")+target_num));
    System.out.println(result+"원"); 
    //결과값 : 사과 : 2000원

     

     Split 

    자바에서는 특정 문자를 기준으로 문자열을 잘라서 배열에 넣어주는 Split이라고 하는 아주 편리한 함수가 있습니다. 일부러 데이터베이스에 +#이런 식으로 문장 끝에 특수기호를 넣어주고 나중에 데이터베이스에서 값을 꺼낼 때는 #으로 Split 해서 사용하는 등 아주 활용도가 높은 함수입니다.

     

    그림을 통해 Split함수를 살펴보겠습니다.

     

    Split

     

    보시는 바와 같이 Split 함수는 String값을 특수기호로 끊어서 배열에 저장시켜줍니다. 활용 예제로는 쉼표(,)로 문자열 잘라서 배열에 넣기와 공백으로 문자열 잘라서 배열에 넣기를 준비했습니다.

     

    사용법

    //문법
    문자열배열 = 대상문자열.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] 문자열 붙이기(Concat, StringBuffer(Append)) 사용법 & 예제

    [Java] 문자열 치환(Replace) 사용법 & 예제

    [Java] 문자열 공백 제거(Trim) 사용법 & 예제

    [Java] 형 변환 Casting(문자형, 정수형, 실수형)

    [Java] Split함수 \n 개행 단위로 문자열 자르기

     

    댓글

    Designed by JB FACTORY