首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java -最小和最大之间的限制数

Java -最小和最大之间的限制数
EN

Stack Overflow用户
提问于 2013-07-29 20:23:33
回答 7查看 61.7K关注 0票数 49

我想返回的数字,只要它是在一个限制,否则返回的最大值或最小值的限制。我可以使用Math.minMath.max的组合来实现这一点。

代码语言:javascript
运行
复制
public int limit(int value) {
    return Math.max(0, Math.min(value, 10));
}

我想知道是否有一个现有的limitrange函数正在被忽略。

如果第三方图书馆很常见的话,欢迎它们(如:公地或番石榴)

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2017-07-20 12:22:41

从版本21开始,番石榴包含了Ints.constrainToRange() (以及其他原语的等效方法)。来自发布说明

添加了constrainToRange([type] value, [type] min, [type] max)方法,该方法将给定值约束到由minmax值定义的封闭范围。如果值在范围内,则返回值本身;如果值低于范围,则返回min;如果超出范围,则返回max

由@dimo414从https://stackoverflow.com/a/42968254/122441复制。

不幸的是,这个版本是在2017年7月才出现的,而且在一些项目(参见https://stackoverflow.com/a/40691831/122441)中,番石榴已经破坏了向后兼容性,这就要求我暂时保留版本19。我还感到震惊的是,朗公院和下议院数学都没有这样的成绩!

票数 13
EN

Stack Overflow用户

发布于 2014-03-31 08:59:44

OP在标准库中请求此实现:

代码语言:javascript
运行
复制
int ensureRange(int value, int min, int max) {
   return Math.min(Math.max(value, min), max);
}

boolean inRange(int value, int min, int max) {
   return (value>= min) && (value<= max);
}

遗憾的是,标准数学图书馆缺乏这些

票数 31
EN

Stack Overflow用户

发布于 2019-07-15 20:02:19

据我所知,这是对Java的要求。在Android世界中,使用Kotlin和Java结合起来是很常见的。如果一些Kotlin用户到达这里(就像我一样),那么他们可以使用coerceIn扩展函数:

Kotlin代码:

代码语言:javascript
运行
复制
println(10.coerceIn(1, 100)) // 10
println(10.coerceIn(1..100)) // 10
println(0.coerceIn(1, 100)) // 1
println(500.coerceIn(1, 100)) // 100

阅读更多关于官方Kotlin文档的内容。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17933493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档