Mai mult
Java: funcția de matrice, cum ar fi PHP's join()?
Vreau să se alăture o String[]
cu un adeziv șir. Există o funcție pentru asta?
255
22
Incepand de la Java8 este posibil să se utilizeze
Șir de caractere.join()
.Generează:
În caz contrar, Apache Commons Lang are
StringUtils
clasă care are ojoin
funcția care se va alătura tablouri împreună pentru a face un "String".De exemplu:
Generează următoarele
String
:Dacă ați fost în căutarea pentru ceea ce de a utiliza în android, este:
de exemplu:
În Java 8, puteți utiliza
nou Șir de caractere.alăturați-vă metodă: https://stackoverflow.com/a/21756398/466677
java.util.StringJoiner clasa: http://docs.oracle.com/javase/8/docs/api/java/util/StringJoiner.html
Ai putea scrie cu ușurință o astfel de funcție în aproximativ zece linii de cod:
Un pic de mod în loc de a folosi subșir():
Ca și cu multe întrebări în ultima vreme, Java 8 la salvare:
Java 8 a adăugat o nouă metodă statică a
java.lang.String
care face exact ceea ce vrei:Folosind-o:
Rezultate în:
Google guava's library, de asemenea, a acest tip de capacitate. Puteți vedea String[] de exemplu, de asemenea, de la API.
Cum este deja descris în api, feriți-vă de imutabilitatea de constructor metode.
Se poate accepta o serie de obiecte așa că'll funcționează în cazul tău. În experiența mea anterioară, am încercat aderarea la o Stivă, care este un iterable și funcționează bine.
Proba la mine :
afiseaza :
|eu sunt un programator|
Dacă utilizați Cadru de Primăvară apoi StringUtils clasă:
Având în vedere:
Apoi, ca o alternativă la coobird's a răspunde, în cazul în care adezivul este ", ":
Sau să înlănțui cu un alt șir de caractere, cum ar fi " & ".
Cu toate acestea... aceasta funcționează NUMAI dacă știți că valorile din matrice sau lista NU conține șirul de caractere ", ".
Nu în miez, nr. O căutare pentru "java matrice se alăture șir lipici" vă va oferi câteva fragmente de cod cu privire la modul de a realiza acest lucru, deși.
de exemplu
Daca'am aterizat aici în căutarea pentru o rapidă matrice-să-șir de conversie, încerca Tablouri.toString().
Doar pentru "am'am cea mai scurtă" provocare, aici sunt la mine ;)
Iterativ:
Recursiv:
Nimic nu built-in de care să știu.
Apache Commons Lang are o clasa numita
StringUtils
care conține multe se alăture funcții.Acest lucru este cum am face-o.
O alternativă similară
Mea de spin.
Îți place meu de 3 linii de cale folosind doar clasa String's metode?
În cazul în care te're folosind Funcționale Java library, și pentru un motiv oarecare poate't folosi Fluxuri de Java 8 (care ar putea fi cazul atunci când se utilizează Android + Retrolambda plugin), aici este o soluție funcțională pentru tine:
Rețineți că l's nu mai eficientă abordare, dar aceasta nu funcționează bine pentru liste mici.
Pentru a obține "str1, str2" de la "str1", "str2", "" :
De asemenea, puteți adăuga suplimentar null-verifica
Eu fac acest fel, folosind un StringBuilder: