番石榴是否可以在 "between" 两个条件下建立范围?
Is Guava possible to build range with two conditions as "between"?
我正在努力制定范围条件来评估值。
为了检查每个符号的值,我制作了切换条件以灵活地生成用于评估值的语句。
以下代码是否可用于检查值? (例如 300 <= 值 <= 500)。
试了几次,都无法射程。
(如果这些方法无效,我会把它们改成.closed等)
谢谢!
public void symbolToRange(RangeSet<Integer> rangeSet, String symbol, int targetNum) {
switch (symbol) { // <, <=, =, >=, >
case ">":
// targetNum < value
rangeSet.add(Range.greaterThan(targetNum));
break;
case ">=":
// targetNum <= value
rangeSet.add(Range.atLeast(targetNum));
break;
case "<":
// targetNum > value
rangeSet.add(Range.lessThan(targetNum));
break;
case "<=":
// targetNum >= value
rangeSet.add(Range.atMost(targetNum));
break;
case "=":
rangeSet.add(Range.singleton(targetNum));
break;
}
}
我会使用函数 return a Range
而不是添加到 RangeSet
,并在无效符号上抛出异常:
public static Range<Integer> symbolToRange(String symbol, int targetNum) {
switch (symbol) { // <, <=, =, >=, >
case ">":
// targetNum < value
return Range.greaterThan(targetNum);
case ">=":
// targetNum <= value
return Range.atLeast(targetNum);
case "<":
// targetNum > value
return Range.lessThan(targetNum);
case "<=":
// targetNum >= value
return Range.atMost(targetNum);
case "=":
return Range.singleton(targetNum);
default:
throw new IllegalArgumentException("Invalid symbol: " + symbol);
}
}
除了这些更改之外,您的功能似乎还不错。
我正在努力制定范围条件来评估值。
为了检查每个符号的值,我制作了切换条件以灵活地生成用于评估值的语句。
以下代码是否可用于检查值? (例如 300 <= 值 <= 500)。
试了几次,都无法射程。
(如果这些方法无效,我会把它们改成.closed等)
谢谢!
public void symbolToRange(RangeSet<Integer> rangeSet, String symbol, int targetNum) {
switch (symbol) { // <, <=, =, >=, >
case ">":
// targetNum < value
rangeSet.add(Range.greaterThan(targetNum));
break;
case ">=":
// targetNum <= value
rangeSet.add(Range.atLeast(targetNum));
break;
case "<":
// targetNum > value
rangeSet.add(Range.lessThan(targetNum));
break;
case "<=":
// targetNum >= value
rangeSet.add(Range.atMost(targetNum));
break;
case "=":
rangeSet.add(Range.singleton(targetNum));
break;
}
}
我会使用函数 return a Range
而不是添加到 RangeSet
,并在无效符号上抛出异常:
public static Range<Integer> symbolToRange(String symbol, int targetNum) {
switch (symbol) { // <, <=, =, >=, >
case ">":
// targetNum < value
return Range.greaterThan(targetNum);
case ">=":
// targetNum <= value
return Range.atLeast(targetNum);
case "<":
// targetNum > value
return Range.lessThan(targetNum);
case "<=":
// targetNum >= value
return Range.atMost(targetNum);
case "=":
return Range.singleton(targetNum);
default:
throw new IllegalArgumentException("Invalid symbol: " + symbol);
}
}
除了这些更改之外,您的功能似乎还不错。