gpt4 book ai didi

kotlin - 使用in运算符将字符串与字符串范围进行比较

转载 作者:行者123 更新时间:2023-12-02 13:01:53 27 4
gpt4 key购买 nike

我正在使用in运算符来检查值是否在范围内。但是我无法确切了解如何与字符串范围进行比较。以下是我尝试过的一些参数及其输出:

   println("KOTLIN" in "J".."K")
false

println("KOTLIN" in "Java".."Scala")
true

println("KOTLIN" in "Java".."Bhuv")
false

最佳答案

in被编译为以下函数(在kotlin.ranges.Range.kt中定义):

public operator fun contains(value: T): Boolean = value >= start && value <= endInclusive

因此 "KOTLIN" in "J".."K"结果为:
("J".."K").contains("KOTLIN")

这种情况下的比较依赖于正常的 String比较,因为> =和<=被编译为 compareTo的变体。该实现如下所示:
public int compareTo(String anotherString) {
int len1 = value.length;
int len2 = anotherString.value.length;
int lim = Math.min(len1, len2);
char v1[] = value;
char v2[] = anotherString.value;

int k = 0;
while (k < lim) {
char c1 = v1[k];
char c2 = v2[k];
if (c1 != c2) {
return c1 - c2;
}
k++;
}
return len1 - len2;
}

因此, "KOTLIN" in "Java".."Scala"等于以下内容:
"KOTLIN".compareTo("Java") >=0 && "KOTLIN".compareTo("Scala") <= 0

关于kotlin - 使用in运算符将字符串与字符串范围进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46764081/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com