Альтернатива String.join в Android?

82

Я хочу объединить ArrayList с запятыми в качестве разделителей. Я нашел этот ответ , заявив, что его можно использовать String.joinв Java.

Однако, когда я пытаюсь использовать это, Android Studio выдает следующую ошибку:

Не удается разрешить метод 'join (java.lang.String, java.lang.String, java.lang.String, java.lang.String)'

Есть ли хорошая краткая альтернатива для Android Studio (вместо использования цикла for)?

TheLeonKing
источник
TextUtils.join () может быть?
mjp66
попробуйте StringUtils.join
Бхаргав Танки

Ответы:

186

TextUtils.joinВместо этого вы можете использовать :

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

( String.joinбыл добавлен в Java 8, поэтому вы не можете использовать его в Android.)

Джон Скит
источник
3
Чтобы сэкономить несколько кликов для пользователей, не являющихся пользователями Android Studio:import android.text.TextUtils
Петр Янкуляк,
Использование TextUtils может вызвать проблемы с модульным тестом. В этом случае используйте функцию здесь: android.googlesource.com/platform/frameworks/base/+/refs/heads/...
Шубин
1
@Subin: Что за проблема? А зачем ссылаться на TextUtils как на альтернативу TextUtils? Боюсь, ваш комментарий не совсем ясен.
Джон Скит
@JonSkeet Причина этой проблемы: stackoverflow.com/q/35763289/1372424 Решение здесь: medium.com/@okmanideep/...
Шубин
2
@Subin: Верно, особенно если вы используете Mockito. И обратите внимание, что решение заключается в копировании источника TextUtils в ваш тестовый проект.
Джон Скит
7
String[] List ={"<html>","<body>","<title>"};
String abc;       
abc =TextUtils.join("\n", List);
textmsg.getText().insert(textmsg.getSelectionStart(), abc);

результат:

<html>
<body>
<title>
БРЕЙ
источник
4

Вы можете использовать это

TextUtils.join(", ", your_list);
Зишан Ахмед
источник