Функция Scala для получения следующей буквы алфавита - PullRequest
1 голос
/ 22 апреля 2011

Ищете что-то, чтобы сделать следующее:

Given input: "s"
Expected output: "t"

Ответы [ 3 ]

5 голосов
/ 22 апреля 2011
scala> def f(s: String) = (s.head + 1).toChar.toString
f: (s: String)java.lang.String

scala> f("s")
res10: java.lang.String = t
4 голосов
/ 22 апреля 2011
def nextLetter(x:String) = (x(0) + 1).toChar.toString
2 голосов
/ 22 апреля 2011

Эти методы возвращают значимые результаты только для букв:

def nextLetter(letter: Char): Option[Char] = {
  val validChars = ('a' to 'y') ++ ('A' to 'Y')
  if (validChars contains letter) Some((letter + 1).toChar) else None
}

def nextLetter(letter: String): Option[String] = {
  if (letter.length != 1) None
  else nextLetter(letter(0)).map(_.toString)
}

println(nextLetter('a'))
println(nextLetter('b'))
println(nextLetter('z'))
println(nextLetter('1'))
println(nextLetter('A'))
println(nextLetter("A"))
println(nextLetter("AB"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...