如何逐行拆分scala中的文本

Posted

技术标签:

【中文标题】如何逐行拆分scala中的文本【英文标题】:how to split the text in scala line by line 【发布时间】:2018-12-19 00:03:47 【问题描述】:

文本将是“asd_fgh_jklm” 输出 : asd fgh jk 流明 如果最后一个单词是 4 那么 2+2 如果是 3 那么 2+1

条件:

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

字符数>=4

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

如果剩余字符数

4 - 2+2

3-2+1

2-2

1 - 1

然后将 2 个字符拆分并打印成一行,剩下的到下一行

【问题讨论】:

你试过什么?向我们展示您的尝试,以便我们更好地解决您的学习过程。 请编辑您的问题以使用某种代码标记,因为我现在不知道这个问题想问什么。此外,正如 jwvh 所建议的那样,请包含您当前的代码,以便我们可以帮助您调试为什么它没有按照您的意愿执行。 【参考方案1】:

我不知道你到底是什么意思,但也许这会对你有所帮助:

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)

【讨论】:

以上是关于如何逐行拆分scala中的文本的主要内容,如果未能解决你的问题,请参考以下文章