Kotlin 入门第四天:基本数据类型及其转换 —— 字符、bool、数组、位操作符

1. 位操作符

shl(bits) - 左移位,对应java <<

shr(bits) - 右移位,对应Java >>

ushr(bits) - 无符号右移位,对应Java >>>

and(bits)- 与,&&

or(bits)- 或,||

xor(bits)- 异或

inv()- 反向

2. 字符

在kotlin中,Char 不能直接和字符操作,Char必须是单引号包含起来的,比如 ‘a', ’0‘。这点和Java不同

fun check(c: char) {
    if (c == 1) //错误,类型不兼容
}

3. 字符比较与转换

fun digit(c: Char): Int {
    if (c !in '0'..'9') throw IllegalArgumentException("Out of Range")
    //显示转换为数字
    return c.toInt() - '0'.toInt()
}

4. 数组

与Java不同,Kotlin中数组是不协变的(invariant)

fun array(args: Array<String>) {
    //[1,2,3]
    var a = arrayOf(1,2,3)
    //[0,2,4]
    var b = Array(3, {i -> (i * 2)})
    
    println(a[0])
    println(b[1])
    //kotlin 数组,还有ByteArray、ShortArray、IntArray,省去了装箱操作
    var x: IntArray = intArrayOf(1, 2, 3)
    x[0] = x[1] + x[2]
}

5. 字符串

fun str(str:String) {
    for (c in str) {
        println(c)
    }
}

6. 与Java不同的是,Kotlin支持三个引号 """ 扩起来的字符串,支持多行字符串

fun str(args: Array<String>) {
    var text = """
    多行字符串
    多行字符串
    """
    println(text)

    /*String 可以通过 trimMargin() 方法来删除多余的空白*/
    var text2 = """
    |多行字符串
    |多行字符串
    “”“.trimMargin()
    println(text2)
}

7. 字符串模版

字符串可以包含模板表达式,即一些小段代码,会求值,并把结果合并到字符串中。

模板表达式以美元符($)开头,由一个简单的名字构成

或者用花括号扩起来的任意表达式

此外,原生字符串和转义字符串内部都支持模板

fun strMode(args: Array<String>) {

    var i = 10
    var s = "i = $i" //求值,结果为字符串 "i = 10"
    print(s)
    
    /*花括号扩起来的任意表达式*/
    s = "runoob"
    var str = "$s.length is ${s.length}" //求值,结果为字符串 “runoob.length is 6”
    print(str)

    // "$" 字符的转义
    
    val price = """
        
        ${'$'}9.9
        """
    
        println(price) //结果为 $9.9
    
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值