You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin中是否可拼接两个范围?如何实现合并范围的迭代与判断?

Kotlin中拼接范围的实现方式

Kotlin本身并不支持你示例里的for (i in 1..8,20..25)或1..8 + 20..25这类直接拼接范围的语法,但可以通过以下方式实现类似需求:

1. 迭代拼接后的范围

  • 使用+运算符合并范围:Kotlin的IntRange支持通过plus方法(即+运算符)合并多个范围,注意要给每个范围加括号避免优先级问题:
    // 正确的合并写法
    for (i in (1..8) + (20..25)) {
        println(i) // 会依次输出1-8、20-25的所有整数
    }
    
  • 通过序列合并多个范围:如果需要拼接3个及以上范围,用sequenceOf创建范围序列再扁平化会更清晰:
    val multipleRanges = sequenceOf(1..8, 20..25, 30..35)
    for (i in multipleRanges.flatten()) {
        println(i)
    }
    

2. 判断元素是否属于拼接范围

  • 直接用逻辑或连接判断:针对少量范围,直接用||组合多个in判断即可:
    val targetNum = 23
    val isInTargetRange = targetNum in 1..8 || targetNum in 20..25
    println(isInTargetRange) // 输出true
    
  • 集合+any方法批量判断:范围较多时,把所有范围存入集合,用any方法检查元素是否在任意一个范围内:
    val targetRanges = listOf(1..8, 20..25)
    val targetNum = 7
    val isInTargetRange = targetRanges.any { targetNum in it }
    println(isInTargetRange) // 输出true
    

内容的提问来源于stack exchange,提问作者Alexander Ites

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 11:30:01