반응형
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();
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();
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();
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();
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 |