scala - Scala 中的换行符

标签 scala newline

Scala 中是否有换行符的简写?在 Java(在 Windows 上)中,我通常只使用“\n”,但这在 Scala 中似乎不起作用 - 特别是

val s = """abcd
efg"""
val s2 = s.replace("\n", "")
println(s2)

产出
abcd
efg

在 Eclipse 中,
efgd

(原文如此)从命令行,和
abcdefg

来自 REPL(非常成功!)
String.format("%n")有效,但有什么更短的吗?

最佳答案

您的 Eclipse 使换行标记成为标准 Windows\r\n,所以您有“abcd\r\nefg”。正则表达式将其转换为“abcd\refg”,Eclipse 控制台处理\r 的方式与 Windows shell 的处理方式略有不同。 REPL 只是使用\n 作为新行标记,因此它按预期工作。

解决方案 1:将 Eclipse 更改为仅使用\n 换行符。

解决方案2:在需要控制换行符时不要使用三引号字符串,使用单引号和显式的\n 字符。

解决方案 3:使用更复杂的正则表达式替换\r\n、\n 或\r

关于scala - Scala 中的换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6193960/

相关文章:

java - 在 Scala 中覆盖 ArrayBuffer.contains() 方法

scala - 在 Scala 中声明一个全局变量

scala - 如何在scala中进行递归循环

c - 新行字符是否与前一个字符属于同一行

file - [System.IO.File]::WriteAllLines 在末尾添加换行符

scala - 如何在spark数据框中用\N替换空字符串

scala - 使用 Play 框架和 Anorm 保留列表

java - 向 JScrollPane 添加新行

java - ByteArrayOutputStream/InputStream 在 S3 导入时丢失换行符

windows - ^M 在 CodeBlocks 中编辑时在行尾(我认为)