2014-01-09 22 views
0

爲什麼我必須在我的代碼中寫入String.join?我可以修補Java嗎?爲什麼Java不附帶標準的字符串工具?

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

無評論「爲什麼」,但這是一個非常低效的「連接」。你應該使用'StringBuilder'來代替。 –

+0

您可以使用Apache Commons,它具有這些類型的實用程序方法:http://commons.apache.org/proper/commons-lang//apidocs/org/apache/commons/lang3/StringUtils.html – dcp

+5

此問題似乎因爲它問的是Java的創建者在創建時所思考的內容,這不會導致真正的答案,而是猜測和猜測。對於SO這不是一個合適的問題。 –

回答

0

JDK不提供,但Guava提供Joiner類,它幾乎相同。

1

與Java 8個流API,你可以寫*:

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

例如,該打印a,b,c

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

* joining需要以下導入:import static java.util.stream.Collectors.joining;

+1

或者在Java 8中:'String joined = String.join(「,」,「a」,「b」,「c」);' – VGR

+0

@VGR確實好多了 - 謝謝指出。 – assylias

相關問題