Альтернатива 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)?


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>

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.