Подтвердить что ты не робот

Выходная строка из списка [Char]

У меня есть l: List [ Char] символов, которые я хочу конкатрировать и возвращать как String в одном для цикла.

Я пробовал это

val x: String = for(i <- list) yield(i)

приводящий к

 error: type mismatch;  
 found   : List[Char]  
 required: String

Итак, как я могу изменить тип результата результата?

Спасибо!

4b9b3361

Ответ 1

Попробуйте следующее:

val x: String = list.mkString

Этот синтаксис:

for (i <- list) yield i

- синтаксический сахар для:

list.map(i => i)

и, таким образом, вернет неизмененную копию исходного list.

Ответ 2

Вы можете использовать следующее:

val x: String = (for(i <- list) yield(i))(collection.breakOut)

См. этот вопрос для получения дополнительной информации о breakOut.

Ответ 3

Вы можете использовать любую из трех перегрузок mkString. В основном он преобразует коллекцию в плоскую строку для каждого метода toString. Перегрузки добавляют пользовательские разделители между каждым элементом.

Это метод Iterable, поэтому вы также можете использовать его в Map или Set.

Подробнее см. http://www.scala-lang.org/api/2.7.2/scala/Iterable.html.