美文网首页
Kotlin基础知识三:区间(ranges)和 数列(progr

Kotlin基础知识三:区间(ranges)和 数列(progr

作者: 北雁南飞_8854 | 来源:发表于2020-05-04 17:51 被阅读0次

    一、Ranges

    1. '..'操作符
    val oneToTen = 1..10
    

    注意'..'操作符是闭区间,即start和end元素都是包含在内的。

    fun fizzBuzz(i: Int) =
        when {
            i % 15 == 0 -> "FizzBuzz "
            i % 3 == 0 -> "Fizz "
            i % 5 == 0 -> "Buzz "
            else -> "$i "
        }
    
    fun main(args: Array<String>) {
        for (i in 1..10) {
            print("$i ")
        }
    }
    

    输出:
    1 2 3 4 5 6 7 8 9 10

    2. 带步幅的遍历
      for(i in 100 downTo 1 step 2) {
            print("$i ")
        }
    

    输出:
    从100开始,输出100到1之间的所有偶数。

    3. 遍历Maps
    fun main(args: Array<String>) {
        //使用TreeMap保证插入后是有序的.
        val binaryResp = TreeMap<Char, String>()
    
        for( c in 'A'..'F') {
            //将Integer转化为二进制格式
            val binary = Integer.toBinaryString(c.toInt())
            //相当于Java的binaryReps.put(c, binary)
            binaryResp[c] = binary
        }
    
        for((letter, binary) in binaryResp) {
            println("$letter = $binary")
        }
    }
    

    输出:
    A = 1000001
    B = 1000010
    C = 1000011
    D = 1000100
    E = 1000101
    F = 1000110

    4. 遍历列表
    fun main(args: Array<String>) {
        val list = arrayListOf<String>("10", "11", "1001")
    
        //同时取出下标和元素
        for ((index, element) in list.withIndex()) {
            println("$index: $element")
        }
    
        //只取下标
        for(index in list.indices) {
            println("$index")
        }
    
        //只取元素
        for(element in list) {
            println("$element")
        }
    }
    
    5. 使用in判断是否在区间内
    //判断一个字符是否是字符
    fun isLetter(c:Char) = c in 'a'..'z' || c in 'A'..'Z'
    
    //判断一个字符是否不是数字
    fun isNotDigit(c:Char) :Boolean = c !in '0'..'9'
    
    //相当于Java的“Java” <= “Kotlin” && “Kotlin” <= “Scala”
    println("Kotlin" in "Java".."Scala")
    
    在when分支中使用in
    fun recognize(c:Char) = when(c) {
        in '0'..'9' -> "It's a digit"
        in 'a'..'z', in 'A'..'Z' -> "It's a letter"
        else -> "I don't know"
    }
    

    相关文章

      网友评论

          本文标题:Kotlin基础知识三:区间(ranges)和 数列(progr

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