大家好,我在浏览一些Java源代码时遇到了这个(java.lang.Character
):
public static boolean isHighSurrogate(char ch) {
return ch >= MIN_HIGH_SURROGATE && ch < (MAX_HIGH_SURROGATE + 1);
}
public static boolean isLowSurrogate(char ch) {
return ch >= MIN_LOW_SURROGATE && ch < (MAX_LOW_SURROGATE + 1);
}
我想知道为什么作者在高限制上加了1并进行小于比较,而不是简单地进行小于等于比较?
如果这有助于可读性,我可以理解,但在这种情况下似乎并非如此。
我想知道上面的代码与下面代码之间有什么区别:
public static boolean isHighSurrogate(char ch) {
return ch >= MIN_HIGH_SURROGATE && ch <= MAX_HIGH_SURROGATE;
}
public static boolean isLowSurrogate(char ch) {
return ch >= MIN_LOW_SURROGATE && ch <= MAX_LOW_SURROGATE;
}
for (i = LOWER_BOUND; i < HIGHER_BOUND; i++)
。 - Oliver CharlesworthMAX_HIGH_SURROGATE
是一个 char 类型,而1
是一个 int 类型... 可能需要进行一些从 char 到 int 的转换。 - BoltClock