重拾Kotlin(3)-陣列、字串模板
一、陣列
Kotlin 中的陣列是帶有型別引數的類,其元素型別被指定為相應的型別引數,使用 Array 類來表示, Array 類定義了 get 與 set 函式(按照運算子過載約定這會轉變為 [ ] )以及 size 屬性等
建立陣列的方法有以下幾個:
- 用 arrayOf 函式建立一個陣列,包含的元素是指定為該函式的實參
- 用 arrayOfNulls 建立一個給定大小的陣列,包含的元素均為 null,只能用來建立包含元素型別可空的陣列
- 呼叫 Array 類的構造方法,傳遞陣列的大小和一個 lambda 表示式,呼叫 lambda 表示式來建立每一個陣列元素
//包含給定元素的字串陣列
val array1 = arrayOf("leavesC", "葉", "")
array1[0] = "leavesC"
println(array1[1])
println(array1.size)
//初始元素均為 null ,大小為 10 的字元陣列
val array2 = arrayOfNulls<String>(10)
//建立從 “a” 到 “z” 的字串陣列
val array3 = Array(26) { i -> ('a' + i).toString() }
需要注意的是,陣列型別的型別引數始終會變成物件型別,因此宣告 Array< Int > 將是一個包含裝箱型別(java.lang.Integer)的陣列。如果想要建立沒有裝箱的基本資料型別的陣列,必須使用一個基本資料型別陣列的特殊類
為了表示基本資料型別的陣列,Kotlin 為每一種基本資料型別都提供了若干相應的類。例如,有 IntArray、ByteArray、BooleanArray 等型別,這些型別都會被編譯成普通的 Java 基本資料型別陣列,比如 int[]、byte[]、boolean[] 等,這些陣列中的值儲存時沒有進行裝箱,而是使用了可能的最高效的方式
要建立一個基本資料型別的陣列,有以下幾種方式:
- 向對應型別的類(如 IntArray)的建構函式傳遞陣列大小,這將返回一個使用對應基本資料型別預設值初始化好的陣列
- 向對應型別的類(如 IntArray)的建構函式傳遞陣列大小以及用來初始化每個元素的 lambda
- 向工廠函式(如 charArrayOf)傳遞變長引數的值,從而得到指定元素值的陣列
//指定陣列大小,包含的元素將是對應基本資料型別的預設值(int 的預設值是 0)
val intArray = IntArray(5)
//指定陣列大小以及用於初始化每個元素的 lambda
val doubleArray = DoubleArray(5) { Random().nextDouble() }
//接收變長引數的值來建立儲存這些值的陣列
val charArray = charArrayOf('H', 'e', 'l', 'l', 'o')
二、字串
Kotlin 與 Java 一樣用 String 型別來表示字串,字串是不可變的,可以使用索引運算子訪問:[] 來訪問包含的單個字元,也可以用 for 迴圈來迭代字串,此外也可以用 + 來連線字串
val str = "leavesC"
println(str[1])
for (c in str) {
println(c)
}
val str1 = str + " hello"
三、字串模板
Kotlin 支援在字串字面值中引用區域性變數,只需要在變數名前加上字元 $ 即可,此外還可以包含用花括號括起來的表示式,此時會自動求值並把結果合併到字串中
val intValue = 100
//可以直接包含變數
println("intValue value is $intValue") //intValue value is 100
//也可以包含表示式
println("(intValue + 100) value is ${intValue + 100}") //(intValue + 100) value is 200
如果你需要在原始字串中表示字面值($)字元(它不支援反斜槓轉義),可以用下列語法:
val price = "${'$'}100.99"
println(price) //$100.99
重拾 Kotlin 系列文章目錄:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/755/viewspace-2822904/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 陣列和字串陣列字串
- 字尾陣列模板陣列
- String字串,陣列字串陣列
- 字元陣列與字串字元陣列字串
- C++陣列 字串C++陣列字串
- Multik——Kotlin的多維陣列Kotlin陣列
- Kotlin建立二維Int陣列Kotlin陣列
- 【筆記/模板】樹狀陣列筆記陣列
- shell切分字串到陣列字串陣列
- PHP 陣列 & 字串處理PHP陣列字串
- JS陣列字串方法整理JS陣列字串
- byte陣列轉字串?陣列字串
- 將字串陣列轉換為浮點數陣列字串陣列
- 重拾Kotlin(18)-運算子過載Kotlin
- 樹狀陣列模板+習題集陣列
- JavaScript 字串轉換為陣列JavaScript字串陣列
- JavaScript split() 分割字串生成陣列JavaScript字串陣列
- 面試必備:陣列和字串面試陣列字串
- PHP 陣列排序(複雜字串)PHP陣列排序字串
- 字串和陣列常用方法整理字串陣列
- js陣列和字串的方法JS陣列字串
- javascript字串和陣列轉換JavaScript字串陣列
- Kotlin 控制流和陣列操作詳解Kotlin陣列
- shell 使用陣列及字串擷取陣列字串
- JavaScript2:變數、陣列、字串JavaScript變數陣列字串
- json字串 轉換為陣列JSON字串陣列
- JavaScript將陣列轉換為字串JavaScript陣列字串
- JavaScript 陣列元素連線成字串JavaScript陣列字串
- 字串和陣列的相互轉換字串陣列
- Join方法把陣列轉為字串陣列字串
- java中排序一個字串陣列Java排序字串陣列
- 字串指標與字元陣列 (轉)字串指標字元陣列
- Ruby小記--字串轉字元陣列字串字元陣列
- 指標陣列練習排列字串指標陣列字串
- js模板引擎art template陣列渲染的方法JS陣列
- 【luogu3368】模板 樹狀陣列 2陣列
- P1939 【模板】矩陣加速(數列)矩陣
- T4701 【卜卜】樹狀陣列模板陣列