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)?


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).


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>

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.