区间在Java中是没有这个概念的,它在Kotlin中是特有的。
一、区间的创建
-
什么是区间
区间是数学上的一个表示范围的概念。 -
区间的类型
-
闭区间
闭区间是指包含起止值的区间。例:设 a,b 是两个实数,且 a ≤ b,满足 a ≤ x ≤ b 的实数 x 的集合,
表示为 [ a,b ],叫做闭区间 -
开区间
开区间是指不包含起止值的区间。例:设 a,b 是两个实数,且 a ≤ b,满足 a < x <b 的实数 x 的集合,
表示为 ( a,b ),叫做开区间 -
半开区间
半开区间是指包含起始值或终止值得区间(也叫前半开区间、后半开区)。例:设 a,b 是两个实数,且 a ≤ b,满足 a ≤ x <b,a <x ≤ b 的实数 x 的集合,
分别表示为 [ a,b ),( a,b ],叫做半开区间 -
倒序区间
区间的值由大到小排列。
-
-
区间如何创建
- 创建闭区间
val intRange = 1..10 // [1,10] val charRange = 'a'..'z' // [a,z] val longRange = 1L..100L // [1L,100L]
- 创建开区间(半开区间)
// 前闭后开区间,不包含结束值 val intRangeExclusive = 1 until 10 // [1,10) val charRangeExclusive = 'a' until 'z' // [a,z) val longRangeExclusive = 1L until 100L // [1L,100L)
- 创建倒序区间
// 区间值由大到小 val intRangeReverse = 10 downTo 1 // [10,9...,1] val charRangeReverse = 'z' downTo 'a' // [z,a] val longRangeReverse = 100L downTo 1L // [100L,1L]
- 区间值的打印
通过println(range.joinToString())
方法打印即可。
- 创建闭区间
二、区间的步长
在创建区间时,有时候我们希望区间值之间以固定的间隔进行跳跃,例如原先排列为1,2,3,4,...,10的区间想变成1,3,5,7,...,9的区间,这个时候我们可以通过设置区间的步长(即两两之间的间隔)来达到预期。
// 区间步长的使用
val intRangeWithStep = 1...10 step 2 // [1,3,5,...,9]
val charRangeWithStep = 'a'...'z' step 2 // [a,c,e,...,y]
val longRangeWithStep = 1L...100L step 2 // [1L,3L,...,99L]
三、区间的迭代
区间的迭代方式类似于数组的迭代方式。
for(element in intRange){
println(element)
}
intRange.foreach{
println(it)
}
四、区间的包含关系
if(3 in intRage){
println("3 in range 'intRange'")
}
if(12 !in intRange){
println("12 not in range 'intRange'")
}