检查范围内的 int

2023-11-30

java中是否有一种优雅的方法来检查int是否等于某个值,或者是否比某个值大/小1。

例如,如果我检查x在身边5。我想返回 true4, 5 and 6,因为 4 和 6 与 5 只相差一。

有内置函数可以做到这一点吗?或者我这样写会更好吗?

int i = 5;
int j = 5;
if(i == j || i == j-1 || i == j+1)
{
    //pass
}
//or
if(i >= j-1 && i <= j+1)
{
    //also works
}

当然,上面的代码很难看并且难以阅读。那么有没有更好的办法呢?


找出它们之间的绝对差异Math.abs

private boolean close(int i, int j, int closeness){
    return Math.abs(i-j) <= closeness; 
}

基于 @GregS 关于溢出的评论,如果你给出Math.abs如果差异不适合整数,您将得到溢出值

Math.abs(Integer.MIN_VALUE - Integer.MAX_VALUE) //gives 1

通过将其中一个参数转换为 longMath.abs将返回一个很长的意思,即差异将被正确返回

Math.abs((long) Integer.MIN_VALUE - Integer.MAX_VALUE) //gives 4294967295

因此,考虑到这一点,该方法现在将如下所示:

private boolean close(int i, int j, long closeness){
    return Math.abs((long)i-j) <= closeness; 
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检查范围内的 int 的相关文章

随机推荐

  • GTK 窗口捕获:VPython (OpenGL) 应用程序

    阅读了文档后VPython and GTK 线程 在我看来 可以在 gtk GUI 中嵌入 VPython 图形 我知道这是可能的Windows 上的 wx但我在 Linux 上使用 PyGTK 现在 我已经成功地取得了部分进展 我可以嵌入
  • 在node.js 中为所有传入的http 请求提供index.html

    我有一个像这样的节点服务器 var express require express var fs require fs var path require path var root fs realpathSync var app expre
  • 无法使用 Android BluetoothProfile 连接到蓝牙 Health Device Fora

    我想通过 Android BluetoothPROfile 连接到 Fora 温度计并获取读数 以下是我的方法 在 OnCreate 中我写了这段代码 if mBluetoothAdapter getProfileProxy this mB
  • 使用 Json.net 序列化时如何根据类型更改属性名称?

    我有一个类型的属性object我必须根据它的类型更改名称 应该非常类似于 XmlElement PropertyName typeof PropertyType XML 的属性 例如 我有一个房产public object Item get
  • 延迟加载变量错误

    我正在编写一个涉及核心数据的程序 我为我创建了一个类变量context and entity并将我的代码写成这样 class PersistencyManager var context NSManagedObjectContext let
  • 无法使用 Node.js 将大块数据填充到 mongodb

    我被要求导入从全市许多站点收集的大量天气数据 每个站点有 1 台计算机 每个计算机有一个文件夹 每 5 分钟同步到一台中央服务器 每天都会创建一个新文件 所以 基本上结构是这样的 一个txt文件的格式为csv文件 其中第一行为字段 其余为数
  • PATH_TRANSLATED 中的redirect:// 是什么?

    我有一个 htaccess通过请求的规则 类别 类别 slug to 类别 php 然而 当我检查 SERVER超级全局 我得到这个条目 Array PATH TRANSLATED gt redirect 那是什么 我从未见过重定向 bef
  • allow_tags=True 不会在 django admin 中渲染
    标签

    我想在 django admin 的 list display 中显示一个表单 但我遇到了这个问题 当我定义这样的东西时 class MyModelAdmin admin ModelAdmin list display foo pagar
  • 识别并填充列表框

    这对我来说是一个谜 填充列表框的语法是什么 但首先 如何识别列表框 我在很多论坛上读到 ListBox1 Additem 但是他们怎么知道它是 ListBox1 这是默认名称ListBox当您将其添加到表单时进行控制 VB 和 VBA 自动
  • CUDA 上的块间屏障

    我想在 CUDA 上实现块间屏障 但遇到了严重的问题 我不明白为什么它不起作用 include
  • PHP Guzzle 5:无法处理包含端口号的 URL

    我正在使用最新版本的guzzle from composer json guzzlehttp guzzle 5 from composer lock name guzzlehttp guzzle version 5 2 0 当我尝试使用包含
  • Javafx如何在webview中显示自定义字体?

    该网页使用了我的电脑上未安装的自定义字体 在这种情况下 WebView似乎使用操作系统的默认字体 但我有字体文件 xx ttf 如何将字体嵌入到我的应用程序中并告诉 WebView 使用它来识别页面上的字体 加载字体 Font loadFo
  • Pandas 将列拆分为多级

    我有一个像这样的数据框 df pd DataFrame pd DataFrame 1 2 3 4 5 6 7 8 9 10 11 12 columns X a Y b X b Y a X a Y b X b Y a 0 1 2 3 4 1
  • 如何在linux终端中再次打开进程?

    我从我的家用电脑上使用 putty 通过 ssh 连接到远程服务器 然后运行了一个需要几个小时才能完成的 python 程序 并且在运行时会打印一些内容 现在过了一会儿 我的互联网断开了 我不得不关闭并重新打开 putty 和 ssh 如果
  • phpmailer 无法从表单发送附件

    搜索 stackoverflow 后我没有得到任何问题的答案 问题是我有一个带有上传按钮的表单 因此当用户提交文件时 该文件将立即通过电子邮件发送给我 我使用 phpmailer 但我只收到消息而不是消息 附件 知道问题出在哪里吗 PS 我
  • Swift 3 - 为什么我的导航栏没有显示?

    我有一个简单的应用程序来测试 REST API 的推送通知 我想在应用程序中显示导航栏 但它不起作用 在我的 AppDelegate 中 我有以下代码 func application application UIApplication d
  • 合并两个列表python

    我有两个清单 a 1 2 3 4 5 6 b 7 8 我想将它合并到 c 1 2 3 7 4 5 6 8 I used zip a b 但结果似乎不正确 有人可以帮忙吗 zip 只会将元组和整数配对 您还需要连接元组和新项目 c aa bb
  • 使用 post/sendmessage 进行鼠标点击不起作用[重复]

    这个问题在这里已经有答案了 可能的重复 如何在C 中模拟鼠标点击 我努力了 Window FindWindow null untitled Paint PostMessage WindowToFind WM MOUSEMOVE 0 loca
  • 组合框的默认值

    您好 我尝试为组合框设置默认值 XAML
  • 检查范围内的 int

    java中是否有一种优雅的方法来检查int是否等于某个值 或者是否比某个值大 小1 例如 如果我检查x在身边5 我想返回 true4 5 and 6 因为 4 和 6 与 5 只相差一 有内置函数可以做到这一点吗 或者我这样写会更好吗 in