Scalaで複数行の文字リテラルを扱う場合は、「"""」と「"""」で囲うことで実現可能です。
Scalaで複数行文字リテラルを扱う
Scala複数行文字リテラル
def main(arts: Array[String]) : Unit = {
val multiRowStr = """複数行
文字リテラル"""
println(multiRowStr)
}
// 【出力結果】
// 複数行
// 文字リテラル
エスケープはされない
また、「"""」で囲った場合は、エスケープはされないので注意が必要です。
エスケープはされない
def main(arts: Array[String]) : Unit = {
val multiRowStr = """複数行\n
文字リテラル"""
println(multiRowStr)
}
// 【出力結果】
// 複数行\n
// 文字リテラル
不要な空白を取り除くstripMargin
上記のように複数行文字リテラルを扱うと、空白文字も含まれてしまいます。
その空白文字が不要な場合は、以下のようにstripMarginを使用することで除去することができます。
不要な空白文字を除去する
def main(arts: Array[String]) : Unit = {
val multiRowStr = """|複数行
|文字リテラル""".stripMargin
println(multiRowStr)
}
// 【出力結果】
// 複数行
// 文字リテラル
stripMarginによって、「|」が出現するまでの空白文字を除去しています。
stripMarginに引数を与えることによって、区切り文字を変更することも可能です。
spritMarginで区切り文字を変更する
def main(arts: Array[String]) : Unit = {
val multiRowStr = """&複数行
&文字リテラル""".stripMargin('&')
println(multiRowStr)
}
// 【出力結果】
// 複数行
// 文字リテラル