HOWTO · Java

Java에서 ArrayList를 문자열로 변환하는 방법

선택한 구분 기호나 대괄호로 감싼 표현을 사용해 Java에서 ArrayList를 문자열로 변환하는 방법을 알아보세요.

이 페이지의 내용

ArrayList를 String으로 변환하려면 구분 기호와 함께 요소당 하나의 값이 필요한지, 표시용으로 대괄호로 감싼 표현이 필요한지를 선택하세요. 구분 기호로 연결한 텍스트에는 String.join()이 직접적인 선택지이며, 루프를 맞춤 설정해야 할 때는 StringBuilder가 유용합니다. 아래 예제에서는 Apple, Orange, Mango를 리스트 값으로 사용합니다.

Java에서 + 연산자를 사용하여 ArrayList를 String으로 변환하기

+ 연산자는 문자열을 연결합니다. 짧고 고정된 리스트의 경우 그 값을 직접 연결하고 사이에 구분 기호를 넣을 수 있습니다. 루프 안에서 연결을 반복하면 중간 문자열이 생성되므로, 더 큰 리스트에는 StringBuilder를 사용하세요.

import java.util.ArrayList;
import java.util.List;

public class SimpleTesting {
  public static void main(String[] args) {
    List<String> fruits = new ArrayList<>();
    fruits.add("Apple");
    fruits.add("Orange");
    fruits.add("Mango");

    String joined = fruits.get(0) + "," + fruits.get(1) + "," + fruits.get(2);
    System.out.println(joined);
  }
}

Java에서 append() 메서드를 사용하여 ArrayList를 String으로 변환하기

StringBuilder.append()를 사용해 루프 안에서 결과를 만드세요. 첫 번째 값을 제외한 각 값 앞에 구분 기호를 추가하면 끝에 불필요한 구분 기호가 남는 것을 피할 수 있습니다. toString()을 호출하면 완성된 String이 반환됩니다.

import java.util.ArrayList;
import java.util.List;

public class SimpleTesting {
  public static void main(String[] args) {
    List<String> fruits = new ArrayList<>();
    fruits.add("Apple");
    fruits.add("Orange");
    fruits.add("Mango");

    StringBuilder result = new StringBuilder();
    for (String fruit : fruits) {
      if (result.length() > 0) {
        result.append(", ");
      }
      result.append(fruit);
    }
    String joined = result.toString();
    System.out.println(joined);
  }
}

Java에서 join() 메서드를 사용하여 ArrayList를 String으로 변환하기

String.join()은 제공한 구분 기호를 사용해 요소를 결합합니다. 구분 기호는 인접한 값 사이에 나타나며, 첫 번째 값 앞이나 마지막 값 뒤에는 추가되지 않습니다. 여기서는 이 API를 Java 최소 버전을 명시하지 않고 설명합니다.

import java.util.ArrayList;
import java.util.List;

public class SimpleTesting {
  public static void main(String[] args) {
    List<String> fruits = new ArrayList<>();
    fruits.add("Apple");
    fruits.add("Orange");
    fruits.add("Mango");

    String joined = String.join(", ", fruits);
    System.out.println(joined);
  }
}

Java에서 StringUtils 클래스를 사용하여 ArrayList를 String으로 변환하기

프로젝트에서 이미 Apache Commons Lang을 사용하고 있다면 StringUtils.join(fruits, ", ")이 제공된 구분 기호로 값을 연결합니다. 이 선택지에는 프로젝트 클래스패스에 Commons Lang 종속성이 필요하며, Java 표준 라이브러리의 일부는 아닙니다. 라이브러리에 대한 자세한 내용은 StringUtils 클래스 가이드를 참조하세요.

Java에서 replaceAll() 메서드를 사용하여 ArrayList를 String으로 변환하기

replaceAll()을 사용해 List.toString()에서 대괄호와 구분 기호 간격을 제거할 수 있지만, 이는 서식 지정의 지름길입니다. 리스트의 표시 표현에 의존하므로, 쉼표나 대괄호를 포함하는 값이 있으면 결과가 모호해질 수 있습니다. 이 예제는 대괄호만 제거하고, List.toString()의 쉼표와 공백으로 된 구분 기호는 그대로 둡니다.

import java.util.ArrayList;
import java.util.List;

public class SimpleTesting {
  public static void main(String[] args) {
    List<String> fruits = new ArrayList<>();
    fruits.add("Apple");
    fruits.add("Orange");
    fruits.add("Mango");

    String joined = fruits.toString().replaceAll("\\[|\\]", "");
    System.out.println(joined);
  }
}

Java에서 joining() 메서드를 사용하여 ArrayList를 String으로 변환하기

스트림 기반 접근 방식에서는 리스트에서 stream()을 호출하고 Collectors.joining()으로 그 요소를 수집합니다. 구분 기호는 값 사이에 삽입됩니다. 이 API는 Java 최소 버전에 대한 주장 없이 설명합니다.

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

public class SimpleTesting {
  public static void main(String[] args) {
    List<String> fruits = new ArrayList<>();
    fruits.add("Apple");
    fruits.add("Orange");
    fruits.add("Mango");

    String joined = fruits.stream().collect(Collectors.joining(", "));
    System.out.println(joined);
  }
}

Java에서 deepToString() 메서드를 사용하여 ArrayList를 String으로 변환하기

Arrays.deepToString()은 대괄호로 감싼 배열 스타일 표현을 만들며, 표시와 중첩된 배열 값에 유용합니다. 단순히 구분 기호로 연결된 문자열을 만들지는 않습니다. 리스트를 메서드에 전달하기 전에 배열로 변환하세요.

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class SimpleTesting {
  public static void main(String[] args) {
    List<String> fruits = new ArrayList<>();
    fruits.add("Apple");
    fruits.add("Orange");
    fruits.add("Mango");

    String representation = Arrays.deepToString(fruits.toArray());
    System.out.println(representation);
  }
}