赞
踩
- //使用for循环进行遍历
- for (s in str) print(s + ",") //H,e,l,l,o, ,K,o,t,l,i,n,
增
plus () | 字符串拼接,可传入任意类型 |
- val str = "Hello Kotlin"
- val num = "123456123"
-
- println(str + num) //Hello Kotlin123456123
- println(str.plus(Person())) //Hello KotlinPerson{name='Default', age=0}
- println(str[1]) //e
删
drop (去除的个数) dropLast (去除的个数) dropWhile (predicate) dropLastWhile (predicate) | 去除前N个元素 去除后N个元素 根据条件正向去除元素,下一个元素不满足时停止去除 根据条件反向去除元素,下一个元素不满足时停止去除 |
take (获取的个数) takeLast (获取的个数) takeWhile (predicate) takeLastWhile (predicate) | 获取前N个元素,如果N大于字符串长度则返回整个字符串 获取后N个元素,如果N大于字符串长度则返回整个字符串 根据条件正向获取元素,下一个元素不满足时停止获取 根据条件反向获取元素,下一个元素不满足时停止获取 |
subSequence (开始位置,结束位置) subSequence (Range) subString (开始位置) subString (开始位置,结束位置) subString (Range) | 截取两个索引之间的字符串,不包括结束位置上的元素 截取该区间索引之间的字符串,包括结束位置上的元素 从开始位置一直截取到最后 截取两个索引之间的字符串,不包括结束位置上的元素 截取该区间索引之间的字符串,包括结束位置上的元素 |
- val str = "Hello Kotlin"
- val num = "123456123"
-
- println(num.drop(3)) //456123
- println(num.substring(3)) //456123
- println(num.dropLast(3)) //123456
- println(num.substring(0, num.length - 3)) //123456
- println(num.dropWhile { it == '1' }) //23456123
- println(num.substring(1..3)) //234
-
- println(num.take(3)) //123
- println(num.takeLast(3)) //123
- println(num.takeWhile { it == '1' || it == '2' }) //12
- println(num.takeLastWhile { it == '1' }) //结果为空
-
- println(str.subSequence(2,4)) //ll
- println(str.subSequence(2..4)) //llo
- println(str.substring(2)) //llo Kotlin
- println(str.substring(2,4)) //ll
- println(str.substring(2..4)) //llo
改
toUpperCase () toLowerCase () | 全部转为大写 全部转为小写 |
reversed () | 将元素倒序排列 |
trim () trimStart () trimEnd () | 同时去除首尾空格 去除开头空格 去除结尾空格 |
replace (旧值,新值,默认false不忽略大小写) replace (正则表达式,新值) replaceFirst (旧值,新值) replaceBefore (目标值,添加值) replaceBeforeLast (目标值,添加值) replaceAfter (旧值,新值) replaceAfterLast(目标值,添加值) | 旧值替换成新值 替换满足正则表达式的部分为新值 替换满足条件的第一个字符/字符串 去掉满足条件的字符/字符串之前的元素,并在之前添加新元素 去掉最后一个满足条件的字符/字符串之前的元素,并在之前添加新元素 去掉满足条件的字符/字符串之后的元素,并在之后添加新元素 去掉最后一个满足条件的字符/字符串之后的元素,并在之后添加新元素 |
split (Regex ("正则表达式")) split (Pattern.compile ("正则表达式")) split (字符/字符串) | 通过正则表达式或者字符/字符串进行分割,返回的是数组 |
- val str = "Hello Kotlin"
- val num = "123456123"
-
- println(str.toUpperCase()) //HELLO KOTLIN
- println(str.toLowerCase()) //hello kotlin
- println(str.reversed()) //niltoK olleH
-
- println(str.replace("Hello", "NiHao")) //NiHao Kotlin
- println(str.replace("hello", "NiHao")) //Hello Kotlin
- println(str.replace("Hello", "NiHao", true)) //NiHao Kotlin
- println(str.replace("hello", "NiHao", false)) //Hello Kotlin
- println(num.replace('1', '9')) //923456923
- println(num.replace(Regex("[0-9]+"), "a"))
- println(num.replaceFirst('2', '9')) //193456123
- println(num.replaceBefore('4', "99")) //99456123
-
- println(num.split('2')) //[1, 34561, 3]
查
get (索引) | 根据索引获取字符串中的元素,推荐使用操作符 [ ] |
startsWith (字符/字符串) endsWith (字符/字符串) | 是否以目标字符/字符串开始,重载方法可指定起始位置和是否忽略大小写 是否以目标字符/字符串结尾,重载方法可指定起始位置和是否忽略大小写 |
count () count (Predicate) | 获取字符串长度,推荐用 .length 返回符合条件的字符个数 |
frist () frist (Predicate) fristOrNull () fristOrNull (Predicate) 同理 Last、find | 返回第一个元素,没有匹配结果抛异常( 相当于str[0]、str.get(0) ) 返回第一个满足条件的元素,没有匹配结果抛异常 返回第一个元素,没有匹配结果返回null 返回第一个满足条件的元素,没有匹配结果返回null 同理Last、find |
isEmpty () isNotEmpty () isNullOrEmpty () isBlank () isNotBlank () isNullOrBlank () | str.length == 0,,不能直接用于可空的字符串 str.length > 0,不能直接用于可空的字符串 str == null || str.length ==0 str.length == 0 || str.空格数 == str.length,不能直接用于可空的字符串 上面取反,不能直接用于可空的字符串 str == null || str.isBlank() |
indexOf (字符/字符串,默认0开始位置,默认false忽略大小写) lastIndexOf (字符/字符串,默认length-1位置,默认false忽略大小写) indexOfFrist (Predicate) indexOfLast (Predicate) | 查找目标字符/字符串第一次在原字符串中出现的位置 查找目标字符/字符串最后一次在原字符串中出现的位置 根据条件,查找目标字符第一次在原字符串中出现的位置 根据条件,查找目标字符最后一次在原字符串中出现的位置 |
- val str = "Hello Kotlin"
- val num = "123456123"
-
- println(str[6]) //K
- println(str.get(6)) //K
-
- println(num.first()) //1
- println(num.first { it == '4' }) //4
- println(num.count()) //9
- println(num.length) //9
- println(num.count { it == '1' }) //2
- println(num.startsWith('1'))
-
- println(str.indexOf('l')) //2
- println(num.lastIndexOf("23")) //7
- println(str.indexOfFirst { it == 'l' }) //2
- println(str.indexOfLast { it =='l' }) //9
符号 | 说明 |
"文本内容" | 转义字符串(和Java一样) |
"""文本内容""" | 原生字符串(里面内容原原本本打印,包括换行和转义字符) |
$ | 引用变量 |
${} | 调用方法和运算 |
- //增
- var str = "2" + 32 //用 + 操作符连接字符串,第一个元素要是字符串
- str += "00" //字符串拼接
- println(str) //打印:23200
-
- //改
- val aa = "小明和朋友玩得很开心!"
- val bb = "小红"
- println(aa.replace("朋友", bb)) //打印:小明和小红玩得很开心!
-
- //查
- val str2 = "今天天气不错"
- println(str2[5]) //字符串元素可通过索引拿到,打印:错
- for (s in str2) print(s + ",") //遍历
-
- //字符串模版
- val person = Person("John", 23)
- println("姓名:${person.name},年龄:${person.age}") //打印:姓名:John,年龄:23
-
- val a = 5
- val b = 3
- println("一共有${a+b}个人") //打印:一共有8个人
- println("$a+$b=${show(5, 3)}") //打印:5+3=8
-
- val answer = true
- println("答案是:${if(answer)"正确" else "错误"}") //打印:答案是:正确
-
- //打印:映入眼帘的是"紫禁城"3个大字
- val place = "紫禁城"
- println("映入眼帘的是\"" + place + "\"闪闪的" + place.length + "个大字") //JAVA拼接方式
- println("映入眼帘的是\"$place\"闪闪的${place.length}个大字") //斜杠转义方式
- println("""映入眼帘的是"$place"闪闪的${place.length}个大字""") //"""原生字符串
- println("去${place}玩看到${place.length}个大字") //去紫禁城玩看到3个大字
-
- //打印美元符号
- val c = 4.22
- println("价格是$$c") //打印:价格是$4.22
-
- //正则表达式
- val pattern = """^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}"""
- val email = "google@gmail.com"
-
- val regex1 = Regex(pattern) //方式一:构造
- val regex2 = pattern.toRegex() //方式二:扩展函数
-
- println(regex1.matches(email)) //精确匹配
- println(regex1.containsMatchIn(email)) //包含匹配
-
- val str1 = "AB12CD34EF"
- val regex3 = Regex("""\d+""")
- println(regex3.find(str1)?.value) //打印:12,返回查找到的第一个匹配的字符串,没找到返回null
- regex3.findAll(str1).forEach { e -> print(e.value + ",") } //打印:12,34, 查找所有匹配的字符串,返回的Sequence是可以迭代的集合,元素类型是MatchResult
- println(regex3.replace(str1, "-")) //打印:AB-CD-EF,替换
- println(regex3.split(str1)) //打印:[AB, CD, EF],若传入limit值表示分割几次就不分割了。默认为0表示符合条件就分割
-
- fun show(a: Int, b: Int) = a + b
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。