当前位置:   article > 正文

Kotlin - 字符串模版 String_kotlin 字符串模板

kotlin 字符串模板

String字符串

  1. //使用for循环进行遍历
  2. for (s in str) print(s + ",") //H,e,l,l,o, ,K,o,t,l,i,n,

plus ()字符串拼接,可传入任意类型
  1. val str = "Hello Kotlin"
  2. val num = "123456123"
  3. println(str + num) //Hello Kotlin123456123
  4. println(str.plus(Person())) //Hello KotlinPerson{name='Default', age=0}
  5. 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)

截取两个索引之间的字符串,不包括结束位置上的元素

截取该区间索引之间的字符串,包括结束位置上的元素

从开始位置一直截取到最后

截取两个索引之间的字符串,不包括结束位置上的元素

截取该区间索引之间的字符串,包括结束位置上的元素

  1. val str = "Hello Kotlin"
  2. val num = "123456123"
  3. println(num.drop(3)) //456123
  4. println(num.substring(3)) //456123
  5. println(num.dropLast(3)) //123456
  6. println(num.substring(0, num.length - 3)) //123456
  7. println(num.dropWhile { it == '1' }) //23456123
  8. println(num.substring(1..3)) //234
  9. println(num.take(3)) //123
  10. println(num.takeLast(3)) //123
  11. println(num.takeWhile { it == '1' || it == '2' }) //12
  12. println(num.takeLastWhile { it == '1' }) //结果为空
  13. println(str.subSequence(2,4)) //ll
  14. println(str.subSequence(2..4)) //llo
  15. println(str.substring(2)) //llo Kotlin
  16. println(str.substring(2,4)) //ll
  17. 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 (字符/字符串)

通过正则表达式或者字符/字符串进行分割,返回的是数组
  1. val str = "Hello Kotlin"
  2. val num = "123456123"
  3. println(str.toUpperCase()) //HELLO KOTLIN
  4. println(str.toLowerCase()) //hello kotlin
  5. println(str.reversed()) //niltoK olleH
  6. println(str.replace("Hello", "NiHao")) //NiHao Kotlin
  7. println(str.replace("hello", "NiHao")) //Hello Kotlin
  8. println(str.replace("Hello", "NiHao", true)) //NiHao Kotlin
  9. println(str.replace("hello", "NiHao", false)) //Hello Kotlin
  10. println(num.replace('1', '9')) //923456923
  11. println(num.replace(Regex("[0-9]+"), "a"))
  12. println(num.replaceFirst('2', '9')) //193456123
  13. println(num.replaceBefore('4', "99")) //99456123
  14. 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)

查找目标字符/字符串第一次在原字符串中出现的位置

查找目标字符/字符串最后一次在原字符串中出现的位置

根据条件,查找目标字符第一次在原字符串中出现的位置

根据条件,查找目标字符最后一次在原字符串中出现的位置

  1. val str = "Hello Kotlin"
  2. val num = "123456123"
  3. println(str[6]) //K
  4. println(str.get(6)) //K
  5. println(num.first()) //1
  6. println(num.first { it == '4' }) //4
  7. println(num.count()) //9
  8. println(num.length) //9
  9. println(num.count { it == '1' }) //2
  10. println(num.startsWith('1'))
  11. println(str.indexOf('l')) //2
  12. println(num.lastIndexOf("23")) //7
  13. println(str.indexOfFirst { it == 'l' }) //2
  14. println(str.indexOfLast { it =='l' }) //9

字符串模版

符号说明
"文本内容"转义字符串(和Java一样)
"""文本内容"""原生字符串(里面内容原原本本打印,包括换行和转义字符)
$引用变量
${}调用方法和运算
  1. //增
  2. var str = "2" + 32 //用 + 操作符连接字符串,第一个元素要是字符串
  3. str += "00" //字符串拼接
  4. println(str) //打印:23200
  5. //改
  6. val aa = "小明和朋友玩得很开心!"
  7. val bb = "小红"
  8. println(aa.replace("朋友", bb)) //打印:小明和小红玩得很开心!
  9. //查
  10. val str2 = "今天天气不错"
  11. println(str2[5]) //字符串元素可通过索引拿到,打印:错
  12. for (s in str2) print(s + ",") //遍历
  13. //字符串模版
  14. val person = Person("John", 23)
  15. println("姓名:${person.name},年龄:${person.age}") //打印:姓名:John,年龄:23
  16. val a = 5
  17. val b = 3
  18. println("一共有${a+b}个人") //打印:一共有8个人
  19. println("$a+$b=${show(5, 3)}") //打印:5+3=8
  20. val answer = true
  21. println("答案是:${if(answer)"正确" else "错误"}") //打印:答案是:正确
  22. //打印:映入眼帘的是"紫禁城"3个大字
  23. val place = "紫禁城"
  24. println("映入眼帘的是\"" + place + "\"闪闪的" + place.length + "个大字") //JAVA拼接方式
  25. println("映入眼帘的是\"$place\"闪闪的${place.length}个大字") //斜杠转义方式
  26. println("""映入眼帘的是"$place"闪闪的${place.length}个大字""") //"""原生字符串
  27. println("去${place}玩看到${place.length}个大字") //去紫禁城玩看到3个大字
  28. //打印美元符号
  29. val c = 4.22
  30. println("价格是$$c") //打印:价格是$4.22
  31. //正则表达式
  32. val pattern = """^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}"""
  33. val email = "google@gmail.com"
  34. val regex1 = Regex(pattern) //方式一:构造
  35. val regex2 = pattern.toRegex() //方式二:扩展函数
  36. println(regex1.matches(email)) //精确匹配
  37. println(regex1.containsMatchIn(email)) //包含匹配
  38. val str1 = "AB12CD34EF"
  39. val regex3 = Regex("""\d+""")
  40. println(regex3.find(str1)?.value) //打印:12,返回查找到的第一个匹配的字符串,没找到返回null
  41. regex3.findAll(str1).forEach { e -> print(e.value + ",") } //打印:12,34, 查找所有匹配的字符串,返回的Sequence是可以迭代的集合,元素类型是MatchResult
  42. println(regex3.replace(str1, "-")) //打印:AB-CD-EF,替换
  43. println(regex3.split(str1)) //打印:[AB, CD, EF],若传入limit值表示分割几次就不分割了。默认为0表示符合条件就分割
  44. fun show(a: Int, b: Int) = a + b
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/575900
推荐阅读
相关标签
  

闽ICP备14008679号