官术网_书友最值得收藏!

2.2 多行字符串的創建

問題

你想在Scala中創建多行字符串,就像用其他語言的heredoc語法一樣。

解決方案

在Scala中,只要使用三個雙引號將想要創建成多行字符串的文本括起來即可:

雖然這樣能運行,但是在這個例子中,第二行和第三行會在行首出現空白。輸出這個字符串看起來像這樣:

有幾種方式可以解決這個問題,最好的解決方式是在多行字符串的末尾加上stripMargin方法,并使用管道符號(|)作為第二行以及之后所有行的開頭:

如果不喜歡使用|符號,則只需要在調用stripMargin時指定想要使用的字符即可:

當然也可以對第二行開始所有的行進行左對齊:

所有以上方法都會產生同樣的結果,即一個多行字符串,其中每一行都是左對齊的。

這些方法生成的結果是一個真正的多行字符串,每一行的末尾都有一個隱藏的\n字符。如果想把這個多行字符串轉換成一個連續的行,可以在stripMargin后調用replaceAll方法,將所有的換行符替換成空格:

這會生成:

討論

Scala多行字符串的另一大功能是,可以在字符串中直接使用單引號和雙引號而不用轉義:

結果為:

主站蜘蛛池模板: 永兴县| 德阳市| 曲靖市| 福安市| 全椒县| 紫阳县| 虹口区| 盱眙县| 霍邱县| 仙游县| 石首市| 于都县| 大丰市| 石楼县| 望江县| 荃湾区| 丽江市| 繁峙县| 息烽县| 通山县| 固原市| 连州市| 绥棱县| 德江县| 乐平市| 昔阳县| 乡城县| 洛隆县| 博爱县| 湄潭县| 博白县| 中牟县| 丰城市| 阳高县| 丰都县| 三原县| 汝州市| 合作市| 措勤县| 陆河县| 灵石县|