本文適合有Java基礎的人
Kotlin語法特點
相比java,省略括號,可以自動判斷類型,省略new關鍵字,空指針捕獲
主函數
kotlin文件(kt文件)中,只有要下列的方法,就可以運行,無需像之前的java那般,還要定義個類,寫上main
方法
fun main(args: Array<String>) {
println("hello world")
}
基本數據類型
這是說是基本數據類型,其實下面的這些都是kotlin封裝好的類,就是相當於Java中的Integer,FLoat等包裝類,數值會自動包裝。
這樣的好處就是,數值是一個對象,可以保證不會出現空指針。
類型 | 位寬度 |
---|---|
Double | 64 |
Float | 32 |
Long | 64 |
Int | 32 |
Short | 16 |
Byte | 8 |
注意,kotlin中的字符類型Char不屬於基本數據類型
由於是對象,所以比較得比較內容,kotlin中封裝了==
和===
兩個運算符供我們比較不同的內容和對象地址
===
表示比較對象地址,兩個 ==
表示比較兩個值(內容)大小
類型轉換:
上面的基本數據類型都有下面的方法,負責類型轉換
- toByte(): Byte
- toShort(): Short
- toInt(): Int
- toLong(): Long
- toFloat(): Float
- toDouble(): Double
- toChar(): Char
//顯示轉換
val num: Byte =1
val num1 = num.toInt
變量聲明
兩個關鍵字:
val
聲明一個只讀常量var
聲明一個變量
val
相當於使用了java中的final
關鍵字修飾變量(聲明常量)
var
就是和之前聲明
//聲明一個整型常量num,數值為12,之后無法對num進行賦值操作
val num: Int = 12
//kotlin的自動判斷類型特性,上面的式子也可以這樣寫
val num = 12
//聲明一個常量,賦值過一次之后,無法再次對常量進行賦值
val num: Int
num = 12
//kotlin的基本數據類型變量,還可以加上“_”來便於閱讀,不影響數值
//下面的num還是一個Int類型的數據
val num = 1_000_000
//小數也可以加上“_”
val num = 1.02_120
字符串String
普通用法
//和java一樣,字符串里可以包含轉義字符
val str = "hello world\n"
println(str)
特殊用法
//里面的\n也會打印出來
val str = """hello world\n"""
println(str)
//去除前面的“|”
val text = """
|Tell me and I forget.
|Teach me and I remember.
|Involve me and I learn.
|(Benjamin Franklin)
""".trimMargin()
//去除前面的“>”
val text = """
>Tell me and I forget.
>Teach me and I remember.
>Involve me and I learn.
>(Benjamin Franklin)
""".trimMargin(">")
字符串模板:
$
開頭,后面可接一個變量,或者是用花括號,里面寫一個表達式
val num = 5
val text = "i = $num"//輸出“i=5”
val text = "the length = ${arrays.length}"
//顯示$,$不支持轉義
val price = "${'$'}9.99"
println(price)
屬性
lastIndex(最后的下標值),length
常用方法
以下加粗的方法都是kotlin中String新增加的方法
方法 | 描述 |
---|---|
String [index] | 取String的指定下標的元素 |
**String first() ** | 取第一個元素 |
**String last() ** | 取最后一個元素 |
indexOf | |
indexLastOf | |
String plus(text) | 和“+”效果一樣,連接字符串 |
Boolean equals(text[,ignoreCase]) | 第二個參數不寫,相當於之前說的“==”比較內容,第二個參數為true,則忽略內容大小寫就行比較 |
String substring(startIndex[,endIndex]) | |
String substringBefore() | 截取第一個出現的字符串前面的字符串內容 |
String substringAfter() | 截取第一個出現的字符串后面的字符串內容 |
String substringBeforeLast() | 截取最后一個出現的字符串前面面的字符串內容 |
String substringAfterLast() | 截取最后一個出現的字符串后面的字符串內容 |
replace() | 替換 |
replaceFirst() | 替換第一個出現的字符串 |
replaceBefore() | 替換第一個出現的字符串前面的內容 |
replaceAfter() | 替換第一個出現的字符串后面的內容 |
replaceBeforeLast() | 替換最后一個出現的字符串前面的內容 |
replaceAfterLast() | 替換最后一個出現的字符串后面的內容 |
spilt() | |
Boolean isBlank() | 字符串是否全是空格 |
Boolean isEmpty() | 字符串長度是否為0,為0返回true |
String reversed() | 字符串反轉 |
String startsWith() | |
String endsWith() | |
String trim() | 清除空格 |
String drop(int) | 刪除頭部的幾個元素並返回 |
String dropLast(int) | 刪除末尾的幾個元素並返回 |
常用方法例子
replaceFirst()等:
val s = "this is starsone"
//替換第一個is之前的內容
println(s.replaceBefore("is", "are"))//輸出為areis is starsone
//替換第一個is之后的內容
println(s.replaceAfter("is", "are"))//輸出為thisare
//替換最后一個is之前的內容
println(s.replaceBeforeLast("is", "are"))//輸出為areis starsone
//替換最后一個is之后的內容
println(s.replaceAfterLast("is", "are"))//輸出為this isare
isBlank和isEmpty:
val text = " "
println(text.isBlank())//輸出為true
println(text.isEmpty())//輸出為fasle
drop和dropLast:
val text = "hello"
println(text.drop(2))//輸出為llo
println(text.dropLast(2))//輸出為hel
substringBefore等:
val text = "this is starsone"
//截取第一個is之前的內容
println(text.substringBefore("is"))
//截取最后一個is之前的內容
println(text.substringBeforeLast("is"))//注意,這里還包括空格
//截取第一個出現的is后面的內容
println(text.substringAfter("is"))
//截取最后一個出現的is后面的內容
println(text.substringAfterLast("is"))
參考鏈接 關於字符串(String)常用操作匯總
kotlin text(有關於string的各種方法介紹)
kotlin api文檔
菜鳥教程 kotlin基本類型