개발 창고/Java

[JAVA] How to join an array

로이제로 2024. 1. 16. 22:00
반응형


1. 입력 값 (예시)

  아래와 같이 input이라는 join을 위한 대상 Int형 Array가 있고, 구분자를 콤마(,) + 공란( )으로 한다고 가정합니다.

int[] input	= new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
String sp	= ", ";

 


2. 방법 #1

 기본적인 방법으로 StringBuilder를 선언해서, 거기에다 Loop(반복)를 실행하며 하나씩 입력해서 구성하는 방법입니다.

// ##########################################
// Method #1
// ##########################################
StringBuilder convert01 = null;
for(int value:input){
    if(convert01 == null)    convert01 = new StringBuilder();
    else                     convert01.append(sp);

    convert01.append(value);
}

System.out.println("Method #1. StringBuilder");
System.out.println(convert01.toString());
System.out.println();

방법 #1 결과


3. 방법 #2

 두 번째 방법은 ArrayUtils로 Int형 Array를 객체화(Object) 한 후 StringUtils를 이용하여 join 해주는 방법입니다.

// ##########################################
// Method #2
// ##########################################
// import org.apache.commons.lang.StringUtils;
// import org.apache.commons.lang.StringUtils;
String convert02 = StringUtils.join(ArrayUtils.toObject(input), sp);

System.out.println("Method #2. StringUtils and ArrayUtils");
System.out.println(convert02);
System.out.println();

방법 #2 결과


4. 방법 #3

 세 번째 방법은 Int형 Array를 stream화 한 후 String 형변환 하여 Collectors를 통하여 join 하는 방법입니다.

 이 방법은 Java 8 버전 이후 부터 사용 가능합니다.

// ##########################################
// Method #3
// ##########################################
// Up to Java 8
// import java.util.Arrays;
// import java.util.stream.Collectors;
String convert03 = Arrays.stream(input)
                   .mapToObj(String::valueOf)
                   .collect(Collectors.joining(sp));
                   
System.out.println("Method #3. Arrays and Collectors");
System.out.println(convert03);
System.out.println();

방법 #3 결과


5. 방법 #4

 네 번째 방법은 IntStream을 이용하여 각 Int형 Array값을 Stream을 통하여 StringJoiner로 join 해주는 방법입니다.

// ##########################################
// Method #4
// ##########################################
// import java.util.StringJoiner;
// import java.util.stream.IntStream;

StringJoiner convert04 = new StringJoiner(sp);
IntStream.of(input).forEach(value -> convert04.add(String.valueOf(value)));

System.out.println("Method #4. StringJoiner and IntStream");
System.out.println(convert04);
System.out.println();

방법 #4 결과


6. 전체소스

import java.util.Arrays;
import java.util.StringJoiner;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

import org.apache.commons.lang.ArrayUtils;
import org.apache.commons.lang.StringUtils;

public class Join {
	public static void main(String[] args){
		int[] input	= new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
		String sp	= ", ";
		
		// ##########################################
		// Method #1
		// ##########################################
		StringBuilder convert01 = null;
		for(int value:input){
			if(convert01 == null)	convert01 = new StringBuilder();
			else					convert01.append(sp);
			
			convert01.append(value);
		}
		
		System.out.println("Method #1. StringBuilder");
		System.out.println(convert01.toString());
		System.out.println();
		
		// ##########################################
		// Method #2
		// ##########################################
		// import org.apache.commons.lang.StringUtils;
		// import org.apache.commons.lang.StringUtils;
		String convert02 = StringUtils.join(ArrayUtils.toObject(input), sp);
		
		System.out.println("Method #2. StringUtils and ArrayUtils");
		System.out.println(convert02);
		System.out.println();
		
		// ##########################################
		// Method #3
		// ##########################################
		// Up to Java 8
		// import java.util.Arrays;
		// import java.util.stream.Collectors;
		String convert03 = Arrays.stream(input)
							.mapToObj(String::valueOf)
							.collect(Collectors.joining(sp));
		
		System.out.println("Method #3. Arrays and Collectors");
		System.out.println(convert03);
		System.out.println();
		
		// ##########################################
		// Method #4
		// ##########################################
		// import java.util.StringJoiner;
		// import java.util.stream.IntStream;
		
		StringJoiner convert04 = new StringJoiner(sp);
		IntStream.of(input).forEach(value -> convert04.add(String.valueOf(value)));
		
		System.out.println("Method #4. StringJoiner and IntStream");
		System.out.println(convert04);
		System.out.println();
	}
}

전체 소스 결과

반응형

'개발 창고 > Java' 카테고리의 다른 글

[JAVA] How to use Calendar Class  (117) 2024.02.11
[JAVA] How to use SimpleDateFormat Class  (91) 2024.02.10
[JAVA] 이메일 유효성 검사  (0) 2023.03.16
[POI] 엑셀 폰트 변경  (0) 2023.02.10
[Nexacro] DataSet to Class  (0) 2023.01.27