백엔드/자바
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의 객체 생성 때 파라미터로 넣었던 구분자, 접두, 접미 부분의 기호가
// 하나의 문자열로 통합되어서 출력
}