美文网首页
每天学一点 Kotlin -- 字符串和字符

每天学一点 Kotlin -- 字符串和字符

作者: 冯可乐同学 | 来源:发表于2021-10-22 09:15 被阅读0次

----《第一季Kotlin崛起:次世代Android开发 》学习笔记

总目录:每天学一点 Kotlin ---- 目录
上一篇:每天学一点 Kotlin -- 控制流:循环
下一篇:每天学一点 Kotlin -- 函数:初次见面

1. 字符串

1.1 同其他的语言一样,单个的符号或文字,称为字符,缩写为 Char。超过2个字符的组合就是字符串。
1.2 包含在一对双引号中间的值,称为字符串字面量 -- 注意:是英文的双引号。

2. 字符串的常用方法

2.1 Kotlin 中字符串同样也可以用+连接两个字符串
2.2 判断字符串为空的方法 isEmpty()
2.3 获取字符串中字符的数目 count() 或 length。

fun testString_01(){
    var str = "学习Kotlin"
    println(str.isEmpty())
    println(str.count())
    println(str.length)
}

2.4 其他用法

fun testString_02() {
    var str = "学习Kotlin,Kotlin是一门比较新的编程语言。hello world, hello kotlin"
    var str2 = "学习Kotlin,Kotlin是一门比较新的编程语言。hello world, hello kotlin"
    var str3 = "学习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)

    // 是否包含某个字符或字符串:contains
    println("是否包含某个字符或字符串")
    println(str.contains('K'))
    println(str.contains("hello"))

    // 判断两个字符串的内容是否相同
    println("判断两个字符串的内容是否相同")
    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个字符:" + str2.drop(6))
    println("舍弃后7个字符:" + 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("去掉空格和 哈 的结果:" + str8)

    // 获取子字符串
    println("获取子字符串: take")
    println("str.take(7) = " + str.take(7))  // 获取前面7个
    println("str.takeLast(7) = " + str.takeLast(7)) // 获取后面7个

    // 替换功能
    println("替换功能")
    var str9 = str
    var str9_1 = str9.replace("hello", "你好")
    var str10 = str;
    var str10_1 = str10.replace('h', 'H')
    println("替换 hello 的结果:" + str9_1)
    println("替换 h 的结果:" + str10_1)
    /*
    替换有跟多细致的方法,比如把所有的数字/字母替换掉,替换限定在某段范围内,替换限定在某个字符/字符串的前/后面
    只替换第一次或最后一次出现的字符等。
     */
}

2.5 Kotlin 还“抄袭”了 Swift 中的一点,就是支持多行字符串,写法是用一对三引号包裹起来。这样的另一个好处,在字符串中就可以不用考虑转义字符的事情了。示例如下:

fun testString_03() {
    var str = """
        第一行内容: "双引号里面的内容"
        第二行内容: 'a', 'b' 
        第三行内容: \n, /t
    """
    println(str)
}

打印结果:

        第一行内容: "双引号里面的内容"
        第二行内容: 'a', 'b' 
        第三行内容: \n, /t

注意:多行字符串打印出来后,每一行前面的缩进也是字符串中的内容,也会被打印出来。

3. 字符

3.1 Kotlin 中 Char 定义字符。字符用单引号包含。
3.2 注意:一个表情文字并不是一个字符。
3.3 和字符串一样,字符也有很多可用的方法:

fun testString_04() {
    val me = '我'
    val five = '5'

    println(me.isLetter())  // 是否是文字
    println(five.isDigit()) // 是否是数字

    println(five - 1)  // 字符的上一个
    println(five + 1) // 字符的下一个
    println(me + 1)
    println(me - 1)

    // 获取字符的编码
    println("获取字符的编码: " + me.toInt())

    // 两个字符的区间
    println("两个字符的区间")
    println(me.until('你'))
    println(me.until('他'))
}
相关代码:https://gitee.com/fzq.com/test-demo

相关文章

网友评论

      本文标题:每天学一点 Kotlin -- 字符串和字符

      本文链接:https://www.haomeiwen.com/subject/zuljoltx.html