백엔드/자바

java.lang 패키지 - join ( ) , StringJoiner

ksge7 2020. 8. 13. 04:25

Join ( ) 메서드

형식 : String.join( "단어 사이에 넣고자 하는 텍스트 또는 기호", 변수명)

 

split( ) 메서드와 반대 역할을 하는 메서드다.

 

아래와 같이 특정 텍스트를 입력해주면 이를 배열 사이에 끼워넣고 합쳐서 하나의 문자열로 돌려준다.

 

public static void main(String[] args) {

    String A [] = {"Tiger", "Bear", "Lion"};
    
    String B = String.join("&", A));  // 배열의 단어 사이에 "&"을 넣고 결합
    
    System.out.println(B);
    // "Tiger&Bear&Lion" 출력
    // 배열의 단어를 합쳐서 문자열로 돌려줌
				
}

 

 

하나의 문장을 가지고 split( ) 메서드로 분리했다가 join( ) 메서드로 다시 합치는 것도 가능하다.

 

public static void main(String[] args) {

    String A = "Tiger,Bear,Lion"; // 변수 A에 한 개의 문자열 저장
    
    String B [] = A.split(",");  // 배열 B에 split()으로 나눈 결과를 A에 저장
    
    String C = String.join("-", B);
    // "-"를 기준으로 배열의 단어를 병합할 수 있도록 join() 메서드 이용
    
    System.out.println(C); // "Tiger-Bear-Lion" 출력
    
}

StringJoiner

StringJoiner라는 클래스를 이용해서 문자들을 병합하는 방법도 있다.

 

StringJoiner의 객체를 생성하고 생성시 파라미터로 구분자를 넣어주고

 

add( ) 메서드로 내용만 추가하면 끝이다.

 

StringJoiner의 참조변수를 인쇄하면 add로 추가한 내용을 구분자를 기준으로

 

하나의 문자열로 합친 값을 얻는다.

 

public static void main(String[] args) {
		
	StringJoiner test = new StringJoiner("-");
        // StringJoiner의 객체 생성. 이때 매개변수로 구분자를 넣어 줌.
    
	String A [] = {"Bear", "Tiger", "Lion"};  // A의 배열 선언 및 값 저장
		
	test.add(A[0]);// add 메서드로 StringJoiner의 인스턴스에 A배열의 단어 차례대로 저장
	test.add(A[1]);
	test.add(A[2]);
		
	System.out.println(test);
        // "Bear-Tiger-Lion" 구분자를 넣어서 배열을 하나의 문자열로 통합해 반환
		
}

 

이것만 보면 Join ( )과 다를 바 없어보인다.

 

하지만 StringJoiner는 파라미터값을 더 전달해주면 문

 

자열의 접두 부분과 접이 부분에 내용을 추가해줄 수 있다.

 

StringJoiner의 객체를 생성할 때 아래와 같이 파라미터 값을 주면 된다.

 

new StringJoiner("구분자", "접두부분", "접미부분"); 과 같이 주면 문자열에 해당 내용이 반영된다.

 

public static void main(String[] args) {
		
	StringJoiner test = new StringJoiner("-", "[", "]");
        // StringJoiner의 객체 생성. 
        // 이때 매개변수로 구분자와 문자열의 접두, 접미에 들어갈 텍스트 또는 기호를 준다.
    
	String A [] = {"Bear", "Tiger", "Lion"};  // A의 배열 선언 및 값 저장
		
	test.add(A[0]);// add 메서드로 StringJoiner의 인스턴스에 A배열의 단어 차례대로 저장
	test.add(A[1]);
	test.add(A[2]);
		
	System.out.println(test);
        // "[Bear-Tiger-Lion]"
        // StringJoiner의 객체 생성 때 파라미터로 넣었던 구분자, 접두, 접미 부분의 기호가
        // 하나의 문자열로 통합되어서 출력
		
}