Добавление одинарных кавычек в строку в Scala - PullRequest
0 голосов
/ 02 октября 2018

мы пытаемся добавить одинарные кавычки к каждому элементу из набора строк в Scala

val s : Set[String] = Set("abcd","cdef")

Ожидаемый результат: val s: Set [String] = Set ("abcd", ""cdef '")

пробовал несколько подходов. Подход 1:

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

Подход 2:

s.map(x => '\'' + x + '\'')

Довольно плохо знаком с Scala, если кто-то может указать нам правильное направлениебыл бы очень полезен

Ответы [ 2 ]

0 голосов
/ 03 октября 2018

Вы не можете подобный подобный образец, чтобы обернуть это двойными кавычками.Таким образом, когда дело доходит до переноса одинарных или двойных кавычек, переходите к шестнадцатеричным значениям.hex 22 для двойных кавычек и hex 27 для одинарных.Это будет легко запомнить.

scala> val sq = Integer.parseInt("27",16).toChar
sq: Char = '

scala> val dq = Integer.parseInt("22",16).toChar
dq: Char = "

scala>  val s : Set[String] = Set("abcd","cdef")
s: Set[String] = Set(abcd, cdef)

scala> s.map(x => s"$sq$x$sq")
res14: scala.collection.immutable.Set[String] = Set('abcd', 'cdef')

scala> s.map(x => s"$dq$x$dq")
res15: scala.collection.immutable.Set[String] = Set("abcd", "cdef")

надеюсь, это добавляет ясности в такие сценарии.

0 голосов
/ 02 октября 2018

Не думаю, что между Scala и тем языком, который вы используете, нет большой разницы.Вы можете использовать одну вещь: Интерполяция строк , и тогда вы можете написать

s.map(x => s"'$x'")
...