字符串

作者: Mobile_Joy | 来源:发表于2017-06-03 13:46 被阅读0次

    字符串

    字符串用String类型表示,并且是不可变的。字符串的元素(字符)可以使用字符串索引运算符访问:s[i]。并且可以使用for循环遍历字符串,如:

    for(c in str){
       printlin(c)
    }
    

    字符串字面值
    Kotlin有两种类型的字符串字面值:

    1. 转义字符串
      可以有转义字符:var s = "Hello, World!\n",类似Java中的字符串
    2. 原生字符串,用三个引号(""")分界符括起来,内部没有转义并且可以包含换行和任意其他字符
      输出时会照原样输出,如下面的原始字符串会被照原格式输出到控制台
        val text = """
            for (c in "foo")
            print(c) 
        """
    

    如果你希望让原生字符串输出时,按照某种格式左对齐,那么你可以使用trimMargin()函数去除前导空格:

       val text = """
                   |Tell me and I forget. 
            |Teach me and I remember. 
            |Involve me and I learn. 
            |(Benjamin Franklin) 
    """.trimMargin()
    

    |默认用作边界前缀,但可以选择其他字符并作为参数传入,比如trimMargin(">")

    啥意思呢,就上面的原生字符串,调用trimMargin()函数可以去除|之前的空格,之后的就不管了

    字符串模板
    字符串可以包含模板表达式,即一些小段代码,会求值并把结果合并到字符串中。
    语法:以$开头,由一个简单的名字(已经声明过的变量)构成:

      var i = 10
      val s = "i = $i" //求值结果为"i= 10",相当于$1是占位符,替i所代表的值占位
    

    或者用花括号括起来的引用表达式:

    val s = "abc"
    val str = "$s.length is ${s.length}" //求值结果为"abc.length is 3",这里字符串模板位花括号内的表达式结果占位
    

    原生字符串同样支持模板,如果你需要在原生字符串中表示字面值$字符(原生字符串中不支持转义),那么你可以:

    val price = """
    ${'$'}9.99
    """
        //或者
    val t = '$'
    val price = """${t}9.99"""

    相关文章

      网友评论

        本文标题:字符串

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