Java 中检查整数是否存在于范围内的实现方法?

10 Sept 2024 | 4 分钟阅读

我们可以使用条件语句结合范围的下限和上限来检查整数是否存在于 Java 的范围内。

要检查整数是否存在于范围内,可以使用以下步骤:

  1. 定义范围(开始和结束)值。
  2. 将整数与范围的开始和结束值进行比较。
  3. 如果整数大于或等于范围的开始值,并且小于或等于范围的结束值,则该整数存在于该范围内。否则,该整数不存在于该范围内。

IntegerRangeChecker.java

输出

7 is within the range [5, 10]

范围类型

在本节中,我们将重点关注这四种有界范围类型。

  • 闭区间 - 包括其下限和上限。
  • 开区间 - 排除其下限和上限。
  • 左开右闭区间 - 包括其上限,排除其下限。
  • 左闭右开区间 - 包括其下限,排除其上限。

例如,假设我们要知道整数 20 是否出现在这两个范围内:R1 = [10, 20),一个左闭右开区间,以及 R2 = (10, 20],一个左开右闭区间。由于 R1 不包含其上限,因此整数 20 仅存在于 R2 中。

使用 < 和 <= 运算符

IntRangeOperators.java

输出

true
true
true
true

使用 Apache Commons 库

接下来,我们将介绍一些可以从第三方库中使用的范围类。首先,我们将 Apache Commons 依赖项添加到我们的项目中

在这里,我们实现了与之前相同的行为,但使用了 Apache Commons Range 类

IntRangeApacheCommons.java

输出

true (5 is in [1, 10])
false (15 is outside [1, 10])
false (5 is not in (1, 10))
true (6 is in (1, 10))
false (5 is not in (2, 10))
true (5 is in [1, 9])
false (10 is outside [1, 9])

使用 IntStream 类

另一种检查整数是否存在于范围内的方​​法是利用 Java 8 及更高版本中提供的 IntStream 类。IntStream 类提供了各种方法,包括 range() 和 anyMatch(),允许我们创建整数范围并检查值是否与范围内的任何元素匹配。

以下是一个示例代码片段,演示了 IntStream 类的用法

CheckRange.java

输出

The number is within the range.

结论

在 Java 编程中,检查整数是否存在于范围内是一项常见任务。我们已经探索了三种完成此任务的方法:使用比较运算符、利用 Apache Commons 的 Range 类以及利用 IntStream 类。每种方法都有其优点,可以根据范围的复杂性和我们项目的具体要求进行选择。

通过掌握这些技巧,我们将能够有效地处理 Java 程序中的范围检查,确保我们的代码在所需的边界内运行。所以,尽管去尝试这些方法,并释放 Java 中范围检查的强大功能。