2013-10-08 2 views
0

Java의 List<Sting> 객체의 모든 구성원을 쉼표로 구분 된 문자열로 인쇄하는 우아한 방법 (반복자 또는 루프가없는 우아한 의미)이 있습니까?목록의 모든 문자열을 단일 문자열로 출력하는 가장 우아하고 간결한 방법은 무엇입니까?

예, 자바의 버전 펄의 I 목록 인터페이스를 확인하고 약속 아무것도 찾지 못했습니다 my $allElementsString = join(",", @myStrings);

(내 추측은 toArray를 사용하는 것이었다 다음 배열의 toString?)

+2

'List.toString()'쉼표를 반환 구분 된 목록이지만 끝에는 중괄호가 포함됩니다. –

+0

@zch - 아마도 더 가까운 것이 http://stackoverflow.com/questions/63150/whats-the-best-way-to-build-a-string-of-delimited-items-in-java – DVK

답변

1

이 목록 인 경우 문자열은 단순히 그것을 인쇄 :

System.out.println(yourList); 

는 사용자 정의 개체의 목록 다음은 문양을 인쇄하는 사용자 정의 클래스에 toString 방법을 오버라이드 (override)했는지 확인 인 경우 개체를 올바르게

0

JDK에는 없지만 guava이 있으며 다른 유틸리티 라이브러리에서도 유사한 솔루션을 제공합니다.

4

이 작업을 직접 수행하는 방법은 JDK에는 없습니다. 당신은 StringBuilder 함께 자신의 목공을 구현하거나 구아바

List<String> string = ...; 
String list = Joiner.on(",").join(string); 
0

아니 같은 제 3 자 라이브러리를 사용할 수 있습니다. 목록 또는 배열에 적용 할 수있는 toString 메서드는 의미있는 방식으로 형식이 지정되지 않습니다.

0

구아바를 사용 하나는 이미 지적, 또는 아파치 공통의 StringUtils는 :

StringUtils.join(list, ","); 
1

나는 대부분의 사람들이 Apache Commons' StringUtils를 사용할 생각 :

List<String> yourStrings = /* something */; 
String commaSeperated = StringUtils.join(yourStrings, ','); 

Apache Commons libraries이 매우 편리합니다. 그들 (또는 Google의 Guava)을 살펴 보는 것이 좋습니다.

1

뭔가 :

List<String> list = new ArrayList<>(); 
list.add("1"); 
list.add("2"); 
list.add("3"); 
String result = list.toString().substring(1, list.toString().length() - 1); 
System.out.println(result); 

출력 :

1, 2, 3 
+0

으로 작성하십시오. one-liner는'list.toString()'을 두 번 호출하는 대가를 지불하지 않습니다. 특히 목록이 클 수있는 실제 코드에서는 특히 그렇습니다. 지역 변수를위한 한 줄의 코드를 추가하는 것은 나쁘지 않습니다. – Holger

관련 문제