kotlin学习笔记三
kotlin可空性
安全调用操作符 ?
a?.函数 如果为空 则函数不执行 一般为该对象的自带函数 可以瀑布式调用 a?函数1?.函数2
let 除了自带函数 还想做一些额外操作 例如对本对象操作,或者进行网络请求
a.?let{
//操作
}
虽然也可以if else 判断 但是安全调用操作符更加方便,简洁,例如支持瀑布调用。以后尽量使用操作符。
非空断言操作符 !!
非空断言操作符 !! 遇到空 就抛异常 可以用try catch 捕捉异常 eg try{a!!. jh}catch{}。多用用try catch 来捕捉抛出异常,写的程序会更加健壮,目前我还没有这种捕捉异常的习惯,这是十分不好的。
空合并操作符 ?:
a?:“daxiong” 若为空 则把冒号后面值给变量 。这个是经常使用的,如果为空,则赋值,这样能省掉一些空判断或捕捉的代码。相当于java的三元表达式
可以结合其他函数来使用(瀑布调用)
例如 Str= str?.let{
//操作}?:“赋值”
如果str不为空,就执行let 否则赋默认值。这样的代码就尽可能的精简了。
总之,使用kotlin编程,类似于瀑布式的调用可以多尝试使用,使得代码精简,发挥kotlin的特性
kotlin字符串
截取字符串 substring
支持intrange eg a=“abcdefg”
int aa=indexof(‘c’) bb=substring(0 until aa) 得到ab 不包含上限值
这个indextof函数也比较有用 之前一直忘记使用
对于intrange
val range1:IntRange =0…500//全闭区间
val range2:IntRange =0 until 500//左闭右开区间
https://blog.csdn.net/qq_27865227/article/details/77659010
分割字符串 split
因为split返回列表 列表支持结解构语法特性(同时给多个变量复制) eg a=“a,b,c,d”
(A,B,C,D)=a.split(’,’).解构语法主要是用来简化赋值
字符串替换 replace
kotlin replace 支持传入两个参数 一个正则表达式 一个匿名函数
eg “abcdefg”.replace(regex(“abc”)){
when(it.value)
{‘a’–>‘A’
……
else–>it.value
}
}
字符串比较
== 字符内容比较 ,==是否是同一对象地址比较 . 而java 中 ==是引用比较 equals是结构比较 。总的来说 。 一般,==可以替代Java的equals
字符串遍历
kitlin有.foreach{it
}函数
数字类型 安全转换函数
字符串转数字 有tointorenull, todounleornull 之类的安全转换函数 例如 有小数的字符串转int 就为空(如果直接 “7.8”.toInt(),则会抛异常,这时就需要安全转换函数)。 double 转 int 有toroundint 这样的四舍五入函数。 double转字符串, 有"%.2f". format(4.645456) 返回的是字符串 “4.64”,这类的格式化函数。
kotlin字符串拼接
可以使用+号直接拼接(与java一样),前提是拼接对象必须被转换为字符串,也可以通过 $ 符号,直接将变量直接插入字符串,这样省去一定的类型转换工作。
eg a :Int =4 str=“ssss $a” 或者 str=“the length is ${“ddddd”.length()}”
字符串拼接(string +,stringBuilder等区别)
https://blog.csdn.net/qq_40687864/article/details/90640086
https://www.cnblogs.com/goody9807/p/6516374.html
字符串操作汇总
https://juejin.cn/post/6844903613869883405