2014-01-09 2 views
0

왜 코드에서 String.join이되어야 하는지를 써야합니까? Java에 패치를 적용 할 수 있습니까?Java가 표준 String 유틸리티와 함께 ​​제공되지 않는 이유는 무엇입니까?

public static String join(String[] arg, String delim) { 
    String ret = ""; 
    for(int i=0; i < arg.length; i++) { 
     ret += arg[i]; 
     if(i != arg.length - 1) { 
      ret += delim; 
     } 
    } 
    return ret; 
} 

완료.

+0

:

String joined = Arrays.stream(new String[] {"a", "b", "c"}).collect(joining(",")); System.out.println(joined); 

* joining 다음 가져 오기를 필요

String joined = Arrays.stream(arg).collect(joining(delim)); 

예를 들어,이 a,b,c가 인쇄 "왜"에 대한 의견을 말하지만, 이것은 매우 비효율적 인'join'입니다. 대신에'StringBuilder'를 사용해야합니다. –

+0

이러한 유형의 유틸리티 메소드가있는 Apache Commons를 사용할 수 있습니다. http://commons.apache.org/proper/commons-lang//apidocs/org/apache/commons/lang3/StringUtils.html – dcp

+5

이 질문은 자바를 만들 때 자바의 제작자가 무엇을 생각하고 있었는지 물어 보는 것이지요. 이는 진정한 해답이 아니라 추측과 추측으로 이어질 수 있습니다. 이것은 SO에 대한 적절한 질문이 아닙니다. –

답변

0

JDK는 제공하지 않지만 GuavaJoiner 클래스를 제공합니다. 이는 거의 동일합니다.

자바 8 스트림 API와
1

, 당신은 * 쓸 수 있습니다 : 없음 import static java.util.stream.Collectors.joining;

+1

또는 Java 8에서도 : String joined = String.join (","a ","b ","c "); ' – VGR

+0

@VGR 실제로 더 좋았습니다. – assylias

관련 문제