我想编写一个Scala函数,它接受一个字符串列表,并在每个字符串中复制每个字符,并将其值增加一个,如下所示:
<your_program> 2>&1 | rotatelogs <opts> <logfile> <rotation_criteria>
诀窍是我必须在一个声明中这样做。
我想过使用map并做了这个:
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()))
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:3)
由于您的输入和输出是不同大小的字符列表,因此您可能希望使用flatMap
,而不是map
。
顺便说一句(c: Char + 1)
是Int
,因此您必须明确地将其转换回Char
以获得您想要的内容。
我不会说更多,因为这应该足以让你自己找出其余部分。