【问题标题】:Scala - Duplicate char and increment it's valueScala - 复制字符并增加它的价值
【发布时间】:2017-09-04 17:04:08
【问题描述】:

我想编写一个 Scala 函数,该函数接受一个字符串列表,并在每个字符串中复制每个字符并将其值递增一个,如下所示:

def diplicateAndIncrementChar(l: List[String]): List[String] = {
   // (...)
}

diplicateAndIncrementChar(List("ROAD", "BALL", "LEMON"))
//> res50: List[String] = List(RSOPABDE, BCABLMLM, LMEFMNOPNO)

诀窍是我必须在一个语句中执行此操作。

我考虑过使用地图并这样做了:

l.map(s => new String(s.map(c => (c+1)).toString()))

但它并没有给出我想要的结果:

//> res10: List[String] = List(Vector(83, 80, 66, 69), Vector(67, 66, 77, 77), Vector(77, 70, 78, 80, 79))

谁能帮我解决这个问题?

【问题讨论】:

  • l.map(s => s.flatMap(c => "" + c + (c+1).toChar))

标签: string scala list char scala-collections


【解决方案1】:

由于您的输入和输出是不同大小的字符列表,您可能希望使用flatMap,而不是map

顺便说一句,(c: Char + 1) 是一个 Int,因此您必须将其显式转换回 Char 才能得到您想要的。

我不会多说,因为这应该足够你自己找出其余的了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-28
    • 1970-01-01
    • 2021-05-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多