【发布时间】:2016-12-28 17:45:38
【问题描述】:
我正在寻找一种干净的方法来在 Scala 中分割字符串中的换行符,无论换行符是 CR 和/或 LF。我一直在使用.split 和基本的正则表达式,但它看起来很难看,让我觉得标准库会自然地封装与系统无关的代码——是否有一个标准库函数可以做到这一点?
提前致谢!
编辑:
我喜欢我的代码与系统无关,这是 JVM 的一大卖点。让我的代码知道硬编码字符串文字正则表达式中的不同操作系统约定似乎(非常轻微地)打破了这一点。它似乎应该由功能丰富的 Scala 标准库自然地抽象出来,我只是想看看是否存在内置方法。
【问题讨论】:
-
“随着时间的推移容易出现拼写错误”?诶?你写一次,作为一种方法。
-
@TheArchetypalPaul 我只是说标准库封装似乎是一件很自然的事情,但我通过搜索找到的所有解决方案似乎都是基于正则表达式的。
-
FWIW, "s.split("""\R""")` 独立于操作系统,在所有系统上的工作方式完全相同。它也与我的有点不同在我的回答中建议,因为它允许“line-end”的其他一些可能性(如换页、行制表和一些 unicode 添加,如“下一行”等)。所以,这不是操作系统在这里是一个问题,因为这是您要遵循的实际约定。
-
我真的不明白这怎么能被否决而答案被赞成。 SO有什么问题?此外,我理解“容易出现拼写错误”,即随着时间的推移您发现的错误 b/c 轻微拼写错误或错误。随时给我一个防弹库解决方案。虽然我很确定有一些推荐 getLines 的答案,但前提是只能找到它们。
-
@Dima 我不知道 """\R""" 正则表达式类——这绝对是个好消息,谢谢。我使用的是正则表达式 """\r|\n|\r\n""",并且不喜欢它依赖于操作系统约定的方式。
标签: string scala input split line-breaks