在 Kotlin 中修剪 String 中的所有换行符 - 惯用的方式

pix*_*xel 1 string newline kotlin

是否有内置/标准库方法可以从字符串中修剪所有新行,而不仅仅是从开头或结尾?

Jof*_*rey 6

据我所知,没有专门删除新行的特殊 stdlib 函数,但text.replace("\n", "")如果您只对删除字符感兴趣,则可以简单地使用\n

如果您想涵盖更多情况,例如更多行结束字符/序列或新行后的空格,您还可以使用正则表达式。例如text.replace(Regex("""(\r\n)|\n"""), ""),但在很多情况下这可能有点过分了。

另一种选择是独立获取行本身,然后用空分隔符将它们重新连接在一起:

text.lines().joinToString("")
Run Code Online (Sandbox Code Playgroud)

  • 坦率地说,这实际上取决于用例,特别是取决于字符串的来源。如果它是从本地文件系统中的文件读取的,那么是的,也许“lineSeparator()”值得考虑。但是,如果您想要删除行分隔符,那么您可能希望直接将文件作为行序列而不是大文本读取。在大多数其他情况下,它可能不是您想要的(例如,在网络上收到的文本),基本上在行分隔符不依赖于本地系统的情况下。 (2认同)