Alternative für String.join in Android?

79

Ich möchte eine ArrayList mit Kommas als Trennzeichen verketten. Ich habe diese Antwort gefunden und festgestellt, dass sie String.joinin Java verwendet werden kann.

Wenn ich dies jedoch versuche, gibt Android Studio den folgenden Fehler aus:

Die Methode 'join (java.lang.String, java.lang.String, java.lang.String, java.lang.String)' kann nicht aufgelöst werden. '

Gibt es eine gute, prägnante Alternative für Android Studio (anstatt eine for-Schleife zu verwenden)?

Algorithmus_NL
quelle
TextUtils.join () vielleicht?
mjp66
versuchen Sie StringUtils.join
Bhargav Thanki

Antworten:

183

Sie können TextUtils.joinstattdessen verwenden:

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

( String.joinwurde in Java 8 hinzugefügt, weshalb Sie es in Android nicht verwenden können.)

Jon Skeet
quelle
3
So speichern Sie ein paar Klicks für Nicht-Android-Studio-Benutzer:import android.text.TextUtils
Peter Jankuliak
Die Verwendung von TextUtils kann zu Problemen beim Komponententest führen. In diesem Fall verwenden Sie eine Funktion von hier: android.googlesource.com/platform/frameworks/base/+/refs/heads/…
Subin
1
@Subin: Was für ein Problem? Und warum als Alternative zu TextUtils auf TextUtils verlinken? Ich fürchte, Ihr Kommentar ist nicht wirklich klar.
Jon Skeet
@ JonSkeet Ursache dieses Problems: stackoverflow.com/q/35763289/1372424 Lösung von hier: medium.com/@okmanideep/…
Subin
2
@Subin: Richtig, also speziell, wenn Sie Mockito verwenden. Beachten Sie, dass die Lösung darin besteht, die TextUtils-Quelle in Ihr Testprojekt zu kopieren.
Jon Skeet
7
String[] List ={"<html>","<body>","<title>"};
String abc;       
abc =TextUtils.join("\n", List);
textmsg.getText().insert(textmsg.getSelectionStart(), abc);

Ergebnis:

<html>
<body>
<title>
BREI
quelle
4

Sie können dies verwenden

TextUtils.join(", ", your_list);
Zeeshan Ahmed
quelle