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) } // 【出力結果】 // 複数行 // 文字リテラル