Egor
01/06/2019, 8:09 PMfun main(args: Array<String>) {
println("ab" in "aa".."az")
println("ba" in "aa".."az")
}
/* Output:
true
false
*/
I can understand that you can validate the range between 'a'..'z'. I'm just not quite able to grasp the idea of validating 'aa'..'az'Shawn
01/06/2019, 8:11 PMa..z
would contain b, c, d, e...
, aa..az
would include ab, ac, ad, ae...
and so on up to az
Dominaezzz
01/06/2019, 8:12 PM"aa" <= "ab" && "ab" <= "az"
.Dominaezzz
01/06/2019, 8:13 PMEgor
01/06/2019, 8:13 PMandym
01/06/2019, 9:21 PMKotlin falls flatly in the range between between Java and Scala
"kotlin" in "java".."scala"
Egor
01/06/2019, 11:14 PMstringIsIn()
This is how I understand this works. Let me know if I'm wrong.
fun main() {
var a = "akkotlin"
var b = "akjava"
var c = "akscala"
println(stringIsIn(a,b,c))
}
fun stringIsIn(a: String, b: String, c: String): Boolean {
for (i in 0..a.lastIndex)
if (i <= b.lastIndex && i <= c.lastIndex)
if ((b[i] != c[i] && a[i] == b[i]) || a[i] != b[i] && b[i] != c[i] || a[i] == b[i] && b[i] == c[i])
return a[i] >= b[i] && a[i] <= c[i]
return false
}
Alan Evans
01/06/2019, 11:53 PMfun stringIsIn(a: String, b: String, c: String): Boolean {
return a.compareTo(b) >= 0 && a.compareTo(c) <= 0
}
Which the IDE tells you can be:
fun stringIsIn(a: String, b: String, c: String): Boolean {
return a >= b && a <= c
}
Which the IDE tells you can be:
fun stringIsIn(a: String, b: String, c: String): Boolean {
return a in b..c
}
Which can generically be:
fun <T:Comparable<T>> tIsIn(a: T, b: T, c: T): Boolean {
return a.compareTo(b) >= 0 && a.compareTo(c) <= 0
}
Which is also:
fun <T:Comparable<T>> tIsIn(a: T, b: T, c: T): Boolean {
return a in b..c
}