Kotlin - 字串



Kotlin 的字串資料型別用於儲存一系列字元。字串值必須用雙引號 (" ") 或三引號 (""" """) 括起來。

Kotlin 中有兩種字串:一種稱為跳脫字元串,另一種稱為原始字串

  • 跳脫字元串用雙引號 (" ") 宣告,可能包含跳脫字元,如 '\n'、'\t'、'\b' 等。

  • 原始字串用三引號 (""" """) 宣告,可以包含多行文字,無需任何跳脫字元。

示例

fun main(args: Array<String>) {
   val escapedString : String  = "I am escaped String!\n"
   var rawString :String  = """This is going to be a
   multi-line string and will
   not have any escape sequence""";

   print(escapedString)
   println(rawString)
}

執行上述 Kotlin 程式後,將生成以下輸出

I am escaped String!
This is going to be a
   multi-line string and will
   not have any escape sequence

為字串指定資料型別是可選的,Kotlin 可以根據給定的雙引號或三引號識別變數是字串。

如果要建立未賦值的字串變數,則必須在宣告變數時指定型別,否則會報錯。

fun main(args: Array<String>) {
   val name : String

   name = "Zara Ali"

   println(name)
}

執行上述 Kotlin 程式後,將生成以下輸出

Zara Ali

Kotlin 字串模板

Kotlin 字串模板是可以評估其結果並將其插入到字串中的程式碼片段。模板表示式以美元符號 ($) 開頭,可以包含名稱或表示式。

fun main(args: Array<String>) {
   val name : String = "Zara Ali"
   
   println("Name  - $name")  // Using template with variable name
   
   println("Name length - ${name.length}")  // Using template with expression.
}

執行上述 Kotlin 程式後,將生成以下輸出

Name - Zara Ali
Name length - 8

Kotlin 字串物件

Kotlin 字串是一個物件,它包含許多屬性和函式,可以透過在特定字串變數後編寫點字元 (.) 來對字串執行某些操作。

本章將介紹一些重要的屬性和函式,其餘內容可在 Kotlin 最新版本的官方文件中找到。

Kotlin 字串索引

Kotlin 字串可以被視為一系列字元,或者可以說字串是字元陣列。可以使用方括號指定元素的索引來訪問其元素。

字串索引從 0 開始,因此如果要訪問字串的第 4 個元素,則應將索引指定為 3 以訪問第 4 個元素。

示例

fun main(args: Array<String>) {
   val name : String = "Zara Ali"

   println(name[3])
   println(name[5])
}

執行上述 Kotlin 程式後,將生成以下輸出

a
A

Kotlin 字串長度

我們可以使用 Kotlin 字串的length屬性來查詢其長度。

Kotlin 函式count()也返回給定字串的長度。

示例

fun main(args: Array<String>) {
   val name : String = "Zara Ali"

   println("The length of name :" + name.length)
   println("The length of name :" + name.count())
      
}

執行上述 Kotlin 程式後,將生成以下輸出

The length of name :8
The length of name :8

Kotlin 字串最後一個索引

我們可以使用 Kotlin 字串的lastIndex屬性來查詢字元序列中最後一個字元的索引。如果字串為空,則返回 -1。

示例

fun main(args: Array<String>) {
   val name : String = "Zara Ali"

   println("The index of last character in name :" + name.lastIndex)
}

執行上述 Kotlin 程式後,將生成以下輸出

The index of last character in name :7

更改字串的大小寫

Kotlin 提供了toUpperCase()toLowerCase()函式,分別用於將字串轉換為大寫和小寫。

示例

fun main(args: Array<String>) {
   val name : String = "Zara Ali"

   println("Upper case of name :" + name.toUpperCase())
   println("Lower case of name :" + name.toLowerCase())
}

執行上述 Kotlin 程式後,將生成以下輸出

Upper case of name :ZARA ALI
Lower case of name :zara ali

Kotlin 字串連線

我們可以使用+運算子連線兩個字串,也可以使用plus()函式連線兩個字串。

示例

fun main(args: Array<String>) {
   var firstName : String = "Zara "
   var lastName : String = "Ali"

   println("Full Name :" + firstName + lastName)
   
   println("Full Name :" + firstName.plus(lastName) )
}

執行上述 Kotlin 程式後,將生成以下輸出

Full Name :Zara Ali
Full Name :Zara Ali

從字串中修剪字元

我們可以使用drop()dropLast()函式從字串中刪除前幾個或後幾個字元。

示例

fun main(args: Array<String>) {
   var name : String = "Zara Ali"

   println("Remove first two characters from name : " + name.drop(2))
   
   println("Remove last two characters from name : " + name.dropLast(2))
}

執行上述 Kotlin 程式後,將生成以下輸出

Remove first two characters from name : ra Ali
Remove last two characters from name : Zara A

字串中的引號

要在字串中使用引號,請使用單引號 (')

示例

fun main(args: Array<String>) {
   var str1 : String = "That's it"
   var str2 : String = "It's OK"

   println("str1 : " + str1)
   println("str2 : " + str2)
}

執行上述 Kotlin 程式後,將生成以下輸出

str1 : That's it
str2 : It's OK

在字串中查詢字串

Kotlin 提供了indexOf()函式來查詢字串中的文字。此函式返回字串中指定文字第一次出現的索引。

示例

fun main(args: Array<String>) {
   var str : String = "Meditation and Yoga are synonymous with India"

   println("Index of Yoga in the string - " + str.indexOf("Yoga"))
}

執行上述 Kotlin 程式後,將生成以下輸出

Index of Yoga in the string - 15

比較兩個字串

Kotlin 提供了compareTo()函式來比較兩個字串。如果兩個字串相等,則此函式返回 0,否則返回 1。

示例

fun main(args: Array<String>) {
   var str1 : String = "Apple"
   var str2 : String = "Apple"

   println(str1.compareTo(str2))
}

執行上述 Kotlin 程式後,將生成以下輸出

0

Kotlin getOrNull() 函式

Kotlin 的getOrNull()函式返回給定索引處的字元,如果索引超出此字元序列的範圍,則返回 null。

示例

fun main(args: Array<String>) {
   var name : String = "Zara"

   println(name.getOrNull(0))
   println(name.getOrNull(2))
   println(name.getOrNull(100))
}

執行上述 Kotlin 程式後,將生成以下輸出

Z
r
null

Kotlin toString() 函式

Kotlin 的toString()函式返回物件的字串表示形式。

示例

fun main(args: Array<String>) {
   var name : String = "Zara Ali"

   println(name.toString())
}

執行上述 Kotlin 程式後,將生成以下輸出

Zara Ali

測驗時間 (面試與考試準備)

答案:D

解釋

所有提到的語句關於控制流都是正確的。

問2 - 以下哪個是 Kotlin 中的控制流語句?

A - 字串

B - Fun

C - When

D - 以上都不是

答案:C

解釋

這裡的關鍵字when是 Kotlin 控制流語句的一部分。

問3 - 如果我們沒有控制流語句,那麼編寫計算機程式幾乎是不可能的?

A - 正確

B - 錯誤

答案:A

解釋

是的,這是正確的,控制流語句是任何程式語言編寫程式的重要組成部分。

廣告