이 글에서는 자바(Java)에서 문자열 리스트(List)를 쉼표로 구분된 하나의 문자열로 변환하는 방법을 알아보겠습니다.
먼저 리스트(List)에 대해 간단히 살펴보겠습니다. 리스트는 순서가 있는 컬렉션으로, 요소들을 순차적으로 저장하고 접근할 수 있습니다. 인덱스 기반의 메서드를 제공하여 요소의 삽입, 수정, 삭제, 검색이 가능하며, 중복된 요소도 허용합니다.
문제 정의
리스트의 각 요소 사이에 쉼표를 삽입하여 하나의 문자열로 만드는 것이 목표입니다. 아래 예시를 통해 살펴보겠습니다.
입력값:
입력 리스트: [Java, Scala, Python]
기대 출력값:
쉼표로 구분된 문자열: Java, Scala, Python
알고리즘
Step 1 - 시작 Step 2 - input_list라는 이름의 리스트를 선언한다. Step 3 - 리스트에 값을 정의한다. Step 4 - 내장 함수 .join()을 사용하여 각 요소 사이에 쉼표를 추가한다. Step 5 - 결과를 출력한다. Step 6 - 종료
핵심은 String.join() 메서드입니다. 이 메서드는 첫 번째 인자로 구분자(delimiter)를 받고, 두 번째 인자로 문자열 리스트를 받아 모든 요소를 지정한 구분자로 연결한 새로운 문자열을 반환합니다. Java 8부터 사용할 수 있으며, 별도의 반복문 없이 간결하게 처리할 수 있다는 장점이 있습니다.
예제 1: main 함수에서 직접 처리하기
첫 번째 방법은 모든 연산을 'main' 함수 안에서 한 번에 처리하는 방식입니다.
import java.util.*;
public class Demo {
public static void main(String args[]){
List<String> input_list =
new ArrayList<>(Arrays.asList("Java", "Scala", "Python"));
System.out.println("정의된 입력 리스트: " + input_list);
String string = String.join(", ", input_list);
System.out.println("쉼표로 구분된 문자열: " + string);
}
}출력 결과
정의된 입력 리스트: [Java, Scala, Python] 쉼표로 구분된 문자열: Java, Scala, Python
예제 2: 객체 지향 방식으로 함수 분리하기
두 번째 방법은 연산 로직을 별도의 함수로 캡슐화하여 객체 지향 프로그래밍 스타일로 작성하는 것입니다. 코드의 재사용성과 가독성이 향상됩니다.
import java.util.*;
public class Demo {
static void add_comma(List<String> input_list){
String string = String.join(", ", input_list);
System.out.println("쉼표로 구분된 문자열: " + string);
}
public static void main(String args[]){
List<String> input_list =
new ArrayList<>(Arrays.asList("Java", "Scala", "Python"));
System.out.println("정의된 입력 리스트: " + input_list);
add_comma(input_list);
}
}출력 결과
정의된 입력 리스트: [Java, Scala, Python] 쉼표로 구분된 문자열: Java, Scala, Python
마무리
이처럼 자바에서는 String.join() 메서드 하나만으로 문자열 리스트를 손쉽게 쉼표로 구분된 문자열로 변환할 수 있습니다. 반복문과 조건문을 직접 작성하는 방식보다 코드가 간결하고 오류 발생 가능성도 낮기 때문에, 실무에서도 가장 널리 사용되는 방법입니다. 참고로 스트림(Stream) API를 활용하는 Collectors.joining() 방법도 있으니, 상황에 맞게 선택하여 사용하시면 됩니다.