2015-07-05 2 views
2

У меня есть неизменный Scala Set[String], содержащий несколько строк, скажем {"a", "b", "c"}. Я хочу в основном добавить их в String, который выглядит как "\"a\",\"b\",\"c\"". Я знаю, что могу сделать var resultStr и использовать for-loop для получения результата. Но поскольку Scala рекомендует использовать неизменяемый val за val, а также так много операций, определенных над множеством, мне было интересно, был ли более элегантный способ достижения результата.Что такое элегантный способ добавления элементов String в Scala Set?

Спасибо.

ответ

5

Если вы хотите создать String из коллекции scala, вы можете просто использовать mkString(sep). Например,

Set("a", "b", "c").mkString(",") 
+0

Спасибо. Это именно то, что я искал. –

3

Вы можете использовать map, чтобы окружить их в кавычки, а затем mkString присоединиться к ним с запятой в качестве разделителя.

s.map(x => s""""$x"""").mkString(",") 

или

s.map(x => "\"" + x + "\"").mkString(",") 

(Высокие частоты цитата путь Scala, чтобы избежать того, чтобы избежать ничего изнутри, а доллар строка интерполяции.)

+4

Спасибо. Я заметил, что есть другая перегруженная форма _mkString (start, sep, end) _, поэтому я закончил использование _mkString ("\" "," \ ", \" "," \ "") _ –

+0

Новый для меня , благодаря :) – bjfletcher

Смежные вопросы