将多行字符串转换为单行
convert multi line string to single line
考虑以下片段
val myString =
"""
|a=b
|c=d
|""".stripMargin
我想将其转换为带分隔符的单行 ;
a=b;c=d;
我试过了
myString.replaceAll("\r",";")
和
myString.replaceAll("\n",";")
但是没用。
试试这个
myString.split("\n").filter(_.nonEmpty).mkString("",";",";")
我试过 \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;
希望对你有帮助
基于
"""
|a=b
|c=d
|""".stripMargin.linesIterator.mkString(";").trim
输出
;a=b;c=d
或使用单个空格 " "
作为分隔符
"""
|Live long
|and
|prosper!
|""".stripMargin.linesIterator.mkString(" ").trim
输出
Live long and prosper!
因为它是“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)
考虑以下片段
val myString =
"""
|a=b
|c=d
|""".stripMargin
我想将其转换为带分隔符的单行 ;
a=b;c=d;
我试过了
myString.replaceAll("\r",";")
和
myString.replaceAll("\n",";")
但是没用。
试试这个
myString.split("\n").filter(_.nonEmpty).mkString("",";",";")
我试过 \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;
希望对你有帮助
基于
"""
|a=b
|c=d
|""".stripMargin.linesIterator.mkString(";").trim
输出
;a=b;c=d
或使用单个空格 " "
作为分隔符
"""
|Live long
|and
|prosper!
|""".stripMargin.linesIterator.mkString(" ").trim
输出
Live long and prosper!
因为它是“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)