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();
}
2011/09/19 19:38 2011/09/19 19:38
Tag //

Trackback Address >> http://freeism.co.kr/tc/trackback/696 >>