[Kotlin 小撇步 #6]字串模板 String Templates

Andy Lu
May 15, 2021

--

在眾多 Kotlin 的好用功能當中,其中一個我很喜歡也很簡單的功能是稱作 String Templates (字串模板)。

在 Kotlin 中,定義字串是用雙引號(Double quote)來將字串包在其中,例如

如果我們想要將其他的字串與此字串組合在一起,我們可以使用 + 運算子。

使用加號將字串組合起來的時候,IDE 會提示我們轉換成模板的形式。

當我們選擇轉換,就會變成下面的樣子:

到這邊我們可以清楚地知道,在雙引號當中,我們可以使用錢字號 ($) 來把變數直接插入在字串中。

$ 除了可以針對單一變數來插入字串中,還可以用來插入類別中的屬性、函式。

假設有一個類別 RandomNumber,其中有一個屬性:luckyNumber,另一個函式:RandomNumbers():String

如下例所示:

RandomNumber

當我們想要列印出該類別的屬性、函式時,我們可以直接用錢字號 $,並用大括弧 { } 將要轉成字串的部分括起來。

7
The random numbers are 1 9.

BTW, 在列印 luckyNumber 時,其實並不需要這麼複雜,我們可以直接把 luckyNumber 帶入 println() 中。這是因為 println 會自動轉型。

Raw String

前面提到,我們使用雙引號定義字串。

假設,有一段文字很長,分了好幾段,我們可以怎麼插入呢?

可以使用三引號 (triple quote) 包起來,如下

利用三引號包起來的文字,利用 print 列印出來的結果,會跟我們在程式碼中呈現的樣子是一樣的,

在哪邊斷句就在哪邊斷句,在哪邊換行就在哪邊換行。

我們同樣可以在 Raw String 中用錢字號插入

小提示,用錢字號 ($) 插入的內容,也可以是一段程式碼。

補充:String.format()

在 Java 中,我們會使用 String.format() 來將字串、數值插入至 String 中。

那麼,在 Kotlin 可以使用 String.format() 嗎?

當然可以,因為 Kotlin 與 Java 是 100% 相容的,原本 Java 能夠使用的項目自然也可以支援。

結論

Kotlin 的字串樣板使我們能夠簡單的使用錢字號來將變數、屬性、函式插入至字串當中。

如果需要與原本字串格式相符的字串,可以使用三引號來定義字串,在三引號中的字串,會忠實的呈現字串原本的樣貌。

最後,雖然目前 Kotlin 沒有提供 String Format ,但是我們仍然可以使用原本 Java 的 java.lang.String.format。

字串是基本型別中,最常使用的其中一種,利用字串樣板,我們就不需要使用 + 運算子來將多個字串相加在一起,只要前後用雙引號或三引號,然後在中間用錢字號插入想要插入的內容即可。

本篇文章如果有幫助到你,請拍手👏鼓勵我吧~ 小祕技:拍手按鈕按著可以連續拍喔。

--

--

Andy Lu
Andy Lu

Written by Andy Lu

Android/Flutter developer, Kotlin Expert, like to learn and share.

No responses yet