2013-05-27 141 views
75

我是Java中的新成員,雖然在PHP中有很好的經驗,並且正在尋找用Java完美替代explode和implode(可用PHP)的函數。Java中的爆炸和Implode(就像PHP一樣)

我對谷歌Google搜索結果相同但不滿意。 任何人都有我的問題的好解決方案將不勝感激。

例如:

String s = "x,y,z"; 
array a = javaExplode(',',s); //what is javaExplode?? 
System.out.println(Arrays.toString(a)); 

希望的輸出:

[x, y, z] 
+3

好的,到目前爲止發現了哪些解決方案? –

+0

這實際上是相同的[一種方法來扭轉效果的Java String.split()?](http://stackoverflow.com/questions/794248) – PhoneixS

+5

爲什麼這個問題被拒絕投票?和主題?請建議避免接下來的問題。 –

回答

115

Javadoc for String顯示String.split()是你正在尋找關於explode

Java不包含「連接」等效的「內部」。正如其他答案所暗示的那樣,不是像一個簡單的函數那樣包含一個巨大的外部依賴項,您可能只想編寫幾行代碼。有很多方法可以實現這一點;使用StringBuilder就是一個:

String foo = "This,that,other"; 
String[] split = foo.split(","); 
StringBuilder sb = new StringBuilder(); 
for (int i = 0; i < split.length; i++) { 
    sb.append(split[i]); 
    if (i != split.length - 1) { 
     sb.append(" "); 
    } 
} 
String joined = sb.toString(); 
+0

謝謝你們所有的答案。 –

+0

Split確實使用正則表達式(在PHP,Perl,Java等中)。如果你想分割另一個符號,它需要被轉義,像這樣:String [] split = foo.split(「\\\(」); – HoldOffHunger

+0

請注意,由於** Java 8 **我們實際上有'String #join [([documentation](https://docs.oracle.com/javase/9​​/docs/api/java/lang/String.html#join-java.lang.CharSequence-java.lang.CharSequence ... - ))。例如:'String joined = String.join(「」,split);'。該方法使用StringJoiner類。 – Zabuza

-1

如果要談論String類的參考。所以你可以使用

串/分

的爆炸&使用字符串

concate

的崩潰。

+1

'concate'不等於'implode'。 – Richard

19

String.split()可以爲您提供一個替代explode()

對於更換implode()我建議你寫的或者是自定義的功能或使用Apache CommonsStringUtils.join()功能。

10

好的選擇是String.split和StringUtils.join方法。

爆炸:

String[] exploded="Hello World".split(" "); 

破滅:

String imploded=StringUtils.join(new String[] {"Hello", "World"}, " "); 

請記住儘管這是StringUtils的外部庫中。

+1

你在哪裏找到StringUtils?我在com.sun.internal和com.sun.deploy中找到了這個類,但我認爲直接在com.sun'包(如sun)下直接使用類,這是Java平臺之外的一個好主意,可以在操作系統平臺(Solaris,Windows,Linux,Macintosh等)上有所不同,並可隨時更改,恕不另行通知,使用SDK版本。 –

+0

好的,編輯完成後,我發現這個類來自外部庫 –

+0

。 .. [Appache Commons](https://commons.apache.org/)(我猜):[StringUtils](https://commons.apache.org/proper/commons-lang/apidocs/org/apache /commons/lang3/StringUtils.html) – crusy

3

我不熟悉PHP,但我認爲String.split是Java相當於PHP explode。至於implode,標準庫不提供這樣的功能。您只需遍歷數組並使用StringBuilder/StringBuffer構建字符串。或者你可以嘗試優秀的Google GuavaSplitterJoinersplit/join方法從Apache CommonsStringUtils

+0

鏈接不工作 – marbel82

+1

除了番石榴之外,所有鏈接均有效,因爲3年過去了,他們轉移到了GitHub。我已經用新的鏈接更新了評論。 –