Alternatywa dla String.join w systemie Android?

82

Chcę połączyć ArrayList z przecinkami jako separatorami. Znalazłem tę odpowiedź , stwierdzając, że można jej używać String.joinw Javie.

Kiedy jednak próbuję tego użyć, Android Studio wyświetla następujący błąd:

Nie można rozpoznać metody „join (java.lang.String, java.lang.String, java.lang.String, java.lang.String)”

Czy istnieje dobra, zwięzła alternatywa dla Android Studio (zamiast używania pętli for)?

TheLeonKing
źródło
TextUtils.join () może?
mjp66
spróbuj StringUtils.join
Bhargav Thanki

Odpowiedzi:

186

Możesz TextUtils.joinzamiast tego użyć :

String result = TextUtils.join(", ", list);

( String.joinzostał dodany w Javie 8, dlatego nie można go używać w Androidzie).

Jon Skeet
źródło
3
Aby zaoszczędzić kilka kliknięć użytkownikom spoza Android Studio:import android.text.TextUtils
Peter Jankuliak
Używanie TextUtils może spowodować problem z testem jednostkowym. W takim przypadku użyj funkcji z tego miejsca: android.googlesource.com/platform/frameworks/base/+/refs/heads/ ...
Subin,
1
@Subin: Jaki problem? I po co tworzyć linki do TextUtils jako alternatywy dla TextUtils? Obawiam się, że twój komentarz nie jest jasny.
Jon Skeet,
@JonSkeet Przyczyna tego problemu: stackoverflow.com/q/35763289/1372424 Rozwiązanie stąd: medium.com/@okmanideep/ ...
Subin
2
@Subin: Dobra, więc specjalnie jeśli używasz Mockito. Zwróć uwagę, że rozwiązaniem jest skopiowanie źródła TextUtils do projektu testowego.
Jon Skeet,
7
String[] List ={"<html>","<body>","<title>"};
String abc;       
abc =TextUtils.join("\n", List);
textmsg.getText().insert(textmsg.getSelectionStart(), abc);

wynik:

<html>
<body>
<title>
BREI
źródło
4

Możesz tego użyć

TextUtils.join(", ", your_list);
Zeeshan Ahmed
źródło