Я написал простую функцию, чтобы заменить все символы b
строки на *
, а если она заканчивается на c
, то заменить конец c
на #
.
Поэтому я пишу код как:
object Main {
def fix(text: String) = {
val s = text.replace("b", "*")
if (s.endsWith("c")) {
s.stripSuffix("c") + ("#")
} else s
}
def main(args: Array[String]) {
println(fix("abbbbccc")) // -> a***cc#
}
}
Я думаю, что этот код не очень хорош, не в стиле scala-way. Поскольку я новичок в scala, я не знаю, как оптимизировать его в одну строку или просто цепочку?
Например:
def fix(text: String) = {
text.replace("b", "*") op { t =>
if (t.endsWith("c")) {
t.stripSuffix("c") + ("#")
} else t
}
}
Это цепь, которую я ожидал. Обратите внимание на метод op
, надеюсь, есть такой метод, как map
. Что нам не нужно определять переменную здесь.
Или в scala есть какой-то другой API, который может сделать этот метод всего одной строкой.