BBH
-Biz Branding Hub-
投稿日 : 
2020/10/18
更新日 : 
2020/10/18

【Scala】複数行の文字リテラルを扱う

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)
}

// 【出力結果】
// 複数行
// 文字リテラル


Profile

管理人プロフィール

都内でITエンジニアをやってます。
変遷:中規模SES→独立系SIer→Webサービス内製開発
使用技術はその時々でバラバラですが、C#、AWSが長いです。
どちらかと言うとバックエンドより開発が多かったです。
顧客との折衝や要件定義、マネジメント(10名弱程度)の経験あり。
最近はJava+SpringBootがメイン。

Recommend