----《第一季Kotlin崛起:次世代Android開發(fā) 》學(xué)習(xí)筆記
總目錄:每天學(xué)一點(diǎn) Kotlin ---- 目錄
上一篇:每天學(xué)一點(diǎn) Kotlin -- 控制流:循環(huán)
下一篇:每天學(xué)一點(diǎn) Kotlin -- 函數(shù):初次見面
1. 字符串
1.1 同其他的語言一樣近顷,單個(gè)的符號(hào)或文字戳杀,稱為字符疚漆,縮寫為 Char。超過2個(gè)字符的組合就是字符串奈附。
1.2 包含在一對(duì)雙引號(hào)中間的值全度,稱為字符串字面量 -- 注意:是英文的雙引號(hào)。
2. 字符串的常用方法
2.1 Kotlin 中字符串同樣也可以用+連接兩個(gè)字符串
2.2 判斷字符串為空的方法 isEmpty()
2.3 獲取字符串中字符的數(shù)目 count() 或 length斥滤。
fun testString_01(){
var str = "學(xué)習(xí)Kotlin"
println(str.isEmpty())
println(str.count())
println(str.length)
}
2.4 其他用法
fun testString_02() {
var str = "學(xué)習(xí)Kotlin将鸵,Kotlin是一門比較新的編程語言。hello world, hello kotlin"
var str2 = "學(xué)習(xí)Kotlin佑颇,Kotlin是一門比較新的編程語言顶掉。hello world, hello kotlin"
var str3 = "學(xué)習(xí)Kotlin,Kotlin是一門比較新的編程語言漩符。hello world"
// 獲得指定位置的字符
println("獲得指定位置的字符")
println(str.get(3))
println(str[3])
println(str.elementAt(3))
// 截取一段字符串
println("截取一段字符串")
println(str.substring(5))
println(str.substring(3, 8))
// 使用索引
println("使用索引")
println(str.indexOf("K"))
println(str.indexOf('K'))
println(str.substring(str.indexOf("一")))
println(str.substring(str.indexOf("一"), str.length - 3))
println("str.indices = " + str.indices)
// 是否包含某個(gè)字符或字符串:contains
println("是否包含某個(gè)字符或字符串")
println(str.contains('K'))
println(str.contains("hello"))
// 判斷兩個(gè)字符串的內(nèi)容是否相同
println("判斷兩個(gè)字符串的內(nèi)容是否相同")
println("str == str2: " + (str == str2))
println("str.contentEquals(str2): " + str.contentEquals(str2))
println("str == str3: " + (str == str3))
println("str.contentEquals(str3): " + str.contentEquals(str3))
// 舍棄子字符串
println("舍棄子字符串")
println("舍棄前6個(gè)字符:" + str2.drop(6))
println("舍棄后7個(gè)字符:" + str3.dropLast(7))
var str4 = " 兩頭有空格 的 字 符 串 -- 哈 哈 哈 "
var str5 = str4
val st6 = str5.dropWhile { it.isWhitespace() }
println("去掉前面的空格: " + st6)
// 去掉前面的空格一喘,并把字符串從尾部開始所有含有“哈”或空格的字符串去掉
var str7 = str4;
val str8 = str7.dropWhile { it.isWhitespace() }.dropLastWhile { it == '哈' || it.isWhitespace() }
println("去掉空格和 哈 的結(jié)果:" + str8)
// 獲取子字符串
println("獲取子字符串: take")
println("str.take(7) = " + str.take(7)) // 獲取前面7個(gè)
println("str.takeLast(7) = " + str.takeLast(7)) // 獲取后面7個(gè)
// 替換功能
println("替換功能")
var str9 = str
var str9_1 = str9.replace("hello", "你好")
var str10 = str;
var str10_1 = str10.replace('h', 'H')
println("替換 hello 的結(jié)果:" + str9_1)
println("替換 h 的結(jié)果:" + str10_1)
/*
替換有跟多細(xì)致的方法驱还,比如把所有的數(shù)字/字母替換掉嗜暴,替換限定在某段范圍內(nèi),替換限定在某個(gè)字符/字符串的前/后面
只替換第一次或最后一次出現(xiàn)的字符等议蟆。
*/
}
2.5 Kotlin 還“抄襲”了 Swift 中的一點(diǎn)闷沥,就是支持多行字符串,寫法是用一對(duì)三引號(hào)包裹起來咐容。這樣的另一個(gè)好處舆逃,在字符串中就可以不用考慮轉(zhuǎn)義字符的事情了。示例如下:
fun testString_03() {
var str = """
第一行內(nèi)容: "雙引號(hào)里面的內(nèi)容"
第二行內(nèi)容: 'a', 'b'
第三行內(nèi)容: \n, /t
"""
println(str)
}
打印結(jié)果:
第一行內(nèi)容: "雙引號(hào)里面的內(nèi)容"
第二行內(nèi)容: 'a', 'b'
第三行內(nèi)容: \n, /t
注意:多行字符串打印出來后,每一行前面的縮進(jìn)也是字符串中的內(nèi)容路狮,也會(huì)被打印出來虫啥。
3. 字符
3.1 Kotlin 中 Char 定義字符。字符用單引號(hào)包含奄妨。
3.2 注意:一個(gè)表情文字并不是一個(gè)字符涂籽。
3.3 和字符串一樣,字符也有很多可用的方法:
fun testString_04() {
val me = '我'
val five = '5'
println(me.isLetter()) // 是否是文字
println(five.isDigit()) // 是否是數(shù)字
println(five - 1) // 字符的上一個(gè)
println(five + 1) // 字符的下一個(gè)
println(me + 1)
println(me - 1)
// 獲取字符的編碼
println("獲取字符的編碼: " + me.toInt())
// 兩個(gè)字符的區(qū)間
println("兩個(gè)字符的區(qū)間")
println(me.until('你'))
println(me.until('他'))
}