Soru Java'da Explode ve Implode (PHP gibi) [kapalı]


Java’da yeni bir deneyimim olmasına rağmen Java’da yeniyim ve Java’da (PHP’de kullanılabilen) patlatma ve çökme için mükemmel yedekler arıyorum.

Aynı şey için Googled var, ancak sonuçlardan memnun değilim. Benim sorunum için iyi bir çözümü olan herkes takdir edilecektir.

Örneğin:

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

Istenilen çıktı:

[x, y, z]

76
2018-05-27 12:50


Menşei


Tamam, şimdiye kadar hangi çözümleri buldunuz? - Konstantin Yovkov
neden bu soru reddedildi? ve konu dışı? Lütfen sonraki sorulardan kaçınmanızı önerin. - Pankaj Wanjari
Bence görüşe göre bu soru o kadar da kötü değil. Bunun çok garip bir soru olduğunu kabul ediyorum, ama çoğu zaman PHP programcıları java patlaması için google'ı kullanıyor ve sonra bunu doğru bir cevap olarak görüyorlar. - gorgi93
Şimdi Kasım 2014 ve ben java dize patladı googled ve bu soru hala en iyi sonuç olarak ortaya çıktı. Bence 'konu dışı kapalı' statüsü kaldırılmalı, çünkü bu benim için bir konu değil. - Chen Li Yong
Şubat 2016, bu soru "java patlaması" için ana sonuçtur. - GustavoMP


Cevaplar:


String için Javadoc bunu ortaya çıkarır String.split() ile ilgili olarak aradığınız şey explode.

Java, "birleştir" eşdeğer bir "çürütme" içermez. Diğer cevaplar gibi basit bir işleve dev bir dış bağımlılık eklemek yerine, sadece birkaç satır kod yazmak isteyebilirsiniz. Bunu başarmanın birçok yolu var; kullanarak StringBuilder biridir:

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();

119
2018-05-27 13:23



Bütün cevapların için teşekkürler. - Pankaj Wanjari
Split aslında düzenli bir ifade kullanıyor (PHP, Perl, Java, vb.). Başka bir sembol üzerinde bölmek istiyorsanız, bunun gibi, şu şekilde kaçmak gerekir: String [] split = foo.split ("\\ ("); - HoldOffHunger
Bu yana unutmayın Java 8 aslında sahibiz String#join (belgeleme). Örneğiniz için: String joined = String.join(" ", split);. Yöntem kullanır StringJoiner sınıf. - Zabuza


String.split() için bir yedek sağlayabilir explode()

Değiştirilmesi için implode() Özel bir işlev yazmanızı veya kullanmanızı öneririm Apache Commons'ler StringUtils.join() fonksiyonlar.


19
2018-05-27 12:55





İyi alternatifler String.split ve StringUtils.join yöntemleridir.

Patlat:

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

Yer:

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

StringUtils'in harici bir kütüphanede olmasına rağmen unutmayın.


12
2018-05-27 12:57



StringUtils'i nerede bulabilirsiniz? Com.sun.internal ve com.sun.deploy içinde bu sınıfı buluyorum ama com.sun altındaki sınıfları doğrudan kullanmanın iyi bir fikir olduğunu düşünmüyorum. packages such as sun., that are outside of the Java platform, can be different across OS platforms (Solaris, Windows, Linux, Macintosh, etc.) and can change at any time without notice with SDK versions - Arnaud Denoyelle
Tamam, düzenlemeden sonra, bu sınıfın harici bir kütüphaneden geldiğini görüyorum. - Arnaud Denoyelle
...hangisi Appache Commons (Sanırım): StringUtils - crusy


java.lang.String.split(String regex) aradığın şey.


4
2018-05-27 12:55





PHP'ye aşina değilim ama bence String.split PHP PHP'ye eşdeğerdir explode. Gelince implodeStandart kütüphane böyle bir işlev sunmuyor. Sadece dizinin üzerinde yineleyin ve kullanarak dize inşa StringBuilder/StringBuffer. Ya da mükemmel deneyebilirsiniz Google Guava  Splitter ve Marangoz veya split/join yöntemleri Apache Commons  StringUtils.


3
2018-05-27 13:02



Bağlantılar çalışmıyor - marbel82
Tüm bağlantılar Guava hariç 3 yıl geçti ve GitHub'a taşındı. Yorumu yeni bağlantılarla güncelledim. - Ivan Sharamet


String Sınıfının referansından bahsediyorsanız. böylece kullanabilirsiniz

Alt dize / bölme

Explode & use String için

concate

Implode için.


0
2018-05-27 12:55



concate eşdeğer değildir implode. - Richard