val myString ="""
|a=b
|c=d
|""".stripMargin
我想用deliminater将其转换为单行;
a=b;c=d;
我尝试了myString.replaceAll("\r",";")
和myString.replaceAll("\n",";")
,但它没有工作
答案 0 :(得分:1)
我尝试使用\n
并且可以正常使用
scala> val myString = """
| a=b
| c=d
| """.stripMargin
myString: String =
"
a=b
c=d
"
scala> myString.replaceAll("\n",";")
res0: String = ;a=b;c=d;
scala> res0.substring(1, myString.length)
res1: String = a=b;c=d;
我希望它有所帮助
答案 1 :(得分:1)
基于https://stackoverflow.com/a/25652402/5205022
"""
|a=b
|c=d
|""".stripMargin.linesIterator.mkString(";").trim
输出
;a=b;c=d
或使用单个空格" "
作为分隔符
"""
|Live long
|and
|prosper!
|""".stripMargin.linesIterator.mkString(" ").trim
输出
Live long and prosper!
答案 2 :(得分:0)
试试这个
myString.split("\n").filter(_.nonEmpty).mkString("",";",";")
答案 3 :(得分:0)
因为这是“ Scala多行到单行”的第一个Google搜索结果,所以这个问题很笼统。添加隐式方式可能是合理的:
implicit class StringExtensionImplicits(s: String) {
def singleLine: String = {
singleLine('|')
}
def singleLine(marginChar: Char): String = {
s.stripMargin(marginChar).replace('\n', ' ')
}
}
现在您可以:
logger.info(
"""I'm a so long log entry that some devs who like vim don't like me.
|But you can help them to keep patience.""".singleLine)