콘텐츠로 건너뛰기

[guava] Joiner 활용 – List를 String으로 concat할 때

List<String> 데이터를 String으로 표현해야 할 경우가 있다.

예를 들면, 외부 API에 파라미터로 넘겨줄 경우.
[A, B, C, D] 라는 데이터를
“A,B,C,D”로 표현하고 싶다.
List는 iterator니까…
순서대로 돌면서 각 문자열에 ,를 붙여주면 끝날 것 같다. (단, 마지막에는 ,를 붙이지 않음)
그런데, 간단하게 해결하는 방법이 있어서 적어본다.
public class MyStringUtils {
  private static final String COMMA = “,”;

  public static String parameterConvertToString(List<String> list) {
    return Joiner.on(COMMA).join(list);
  }
}

Google Collection 이라 불리던 guava를 이용하면 단 한줄로 해결된다.
구글 이놈들… 잘 만드는구만…
덧붙임.
JsonArray로 사용하기 위해서 [“ABC”] 같은 파라미터를 생성하기 위해서는 굳이 위같은 방법보다는
간단하게 아래처럼 하면 된다. (단, “는 RFC규약에 안맞으므로 URL인코딩이 필요함)
public static String parameterConvertToJsonArrayString(List<String> list) {
  return JSONSerializer.toJSON(list).toString();
}
태그:

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다