프로그래밍 언어/JAVA

자바 : List<String> 문자열로 변환

Rateye 2021. 11. 30. 09:45
728x90
반응형
질문 : 자바 : 목록 변환 문자열에

JavaScript에는 Array.join()

js>["Bill","Bob","Steve"].join(" and ")
Bill and Bob and Steve

Java에 이와 같은 것이 있습니까? StringBuilder를 사용하여 직접 작업 할 수 있다는 것을 알고 있습니다.

static public String join(List<String> list, String conjunction)
{
   StringBuilder sb = new StringBuilder();
   boolean first = true;
   for (String item : list)
   {
      if (first)
         first = false;
      else
         sb.append(conjunction);
      sb.append(item);
   }
   return sb.toString();
}

...하지만 이미 JDK의 일부인 경우에는이 작업을 수행 할 필요가 없습니다.

답변

Java 8을 사용하면 타사 라이브러리없이이 작업을 수행 할 수 있습니다.

문자열 컬렉션에 가입하려면 새로운 String.join () 메서드를 사용할 수 있습니다.

List<String> list = Arrays.asList("foo", "bar", "baz");
String joined = String.join(" and ", list); // "foo and bar and baz"

String이 아닌 다른 유형의 Collection이있는 경우 결합하는 Collector 와 함께 Stream API를 사용할 수 있습니다.

List<Person> list = Arrays.asList(
  new Person("John", "Smith"),
  new Person("Anna", "Martinez"),
  new Person("Paul", "Watson ")
);

String joinedFirstNames = list.stream()
  .map(Person::getFirstName)
  .collect(Collectors.joining(", ")); // "John, Anna, Paul"

StringJoiner 클래스도 유용 할 수 있습니다.

출처 : https://stackoverflow.com/questions/1751844/java-convert-liststring-to-a-string
728x90
반응형