如何在scala中逐行拆分文本

时间:2018-07-11 04:13:19

标签: scala

文本将为“ asd_fgh_jklm”     输出:     阿斯     fgh     k     lm     如果最后一个单词是4,则2 + 2     如果是3则2 + 1

条件:

删除字符串中的所有_个字符

字符数> = 4

将3个字符中的每个字符打印到新行中。

如果剩余字符数<= 4

4-2 + 2

3- 2 + 1

2- 2

1-1

然后将2个字符拆分并打印到一行中,然后保留到下一行

1 个答案:

答案 0 :(得分:0)

我不知道您的意思是什么,但这也许会帮助您:

def magicSplit(str: String, separator: String) =
  str.split(separator).toList match {
    case init :+ last => init ++ last.grouped(2)
  }


val res1 = magicSplit("asd_fgh_jklm", "_")
val res2 = magicSplit("asd_fgh_jk", "_")
val res3 = magicSplit("asd_fgh_j", "_")
val res4 = magicSplit("asd_fgh_jkl", "_")

结果:

res1: List[String] = List(asd, fgh, jk, lm)
res2: List[String] = List(asd, fgh, jk)
res3: List[String] = List(asd, fgh, j)
res4: List[String] = List(asd, fgh, jk, l)