배경

  • 코딩테스트 문제를 풀면서 String 배열을 String으로 변환하는 작업이 자주 나와서 기록해두려고 한다.

1. String.join(CharSequence delimiter, CharSequence… elements)

  • join() 메서드는 delimiter(구분자)를 사용하여 elements(대상 배열)을 문자열을 리턴할 수 있다.
  • String.join() 메서드는 Java 1.8 이상부터 사용 가능
    String[] strArr = {"hello", "java"};
    System.out.println(String.join(",", strArr));
    // 결과 : hello,java
    


2. Arrays.toString(Object[] a)

  • Arrays 클래스의 toString() 메서드를 사용하여 배열 모양의 문자열을 리턴할 수 있다.
    String[] strArr = {"hello", "java"};
    System.out.println(Arrays.toString(strArr));
    // 결과 : [hello, java]
    


3. Stream - Collectors.joining()

  • Stream의 Collectors.joining() 메서드를 사용하여 문자열을 리턴할 수 있다.
  • Stream은 Java 1.8 이상부터 사용 가능
    String[] strArr = {"hello", "java"};
    System.out.println(Arrays.stream(strArr).collect(Collectors.joining()));
    // 결과 : hellojava
    


4. StringBuilder.append(String str)

  • 가장 기본적인 방법 중에는 StringBuilder를 생성하여 append() 메서드를 사용하여 문자열을 리턴할 수 있다.
  • 빠르지만 for문을 사용하기 때문에 코드가 조금 길어진다는 단점이 있다.
    String[] strArr = {"hello", "java"};
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < strArr.length; i++) {
      sb.append(strArr[i]);
    }
    System.out.println(sb);
    // 결과 : hellojava
    


5. Apache Commons Lang 3 라이브러리

  • Apache Commons Lang 3 라이브러리는 Java의 유틸리티 클래스 패키지로, 문자열, 배열, 숫자 등 매우 다양하고 편리한 기능을 제공한다.
  • 그 중 StringUtils 클래스의 join() 메서드를 사용하여 문자열 배열을 문자열로 리턴할 수 있다.
    String[] strArr = {"hello", "java"};
    System.out.println(StringUtils.join(strArr, ","));
    // 결과 : hello,java