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


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


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>

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.