Java实现区间字符串转换为条件语句
1、需求
给定区间字符串,例如 [2,3) 我们可以返回某个字段 a >= 2 and a < 3
2、具体实现
/**
* 解析区间字符串--[1,2) -> a >= 1 and a < 2
* @author QiJingJing
* @since 2023/2/23
*/
public class IntervalFormatUtil {
public static String intervalToCondition(String intervalStr, String name) {
if (intervalStr == null || intervalStr.isEmpty() || name == null || name.isEmpty()) {
return "";
}
// 解析区间字符串
boolean startInclusive = intervalStr.charAt(0) == '[';
boolean endInclusive = intervalStr.charAt(intervalStr.length() - 1) == ']';
String[] parts = intervalStr.substring(1, intervalStr.length() - 1).split(",");
if (parts.length != 2) {
return "";
}
String start = parts[0].trim();
String end = parts[1].trim();
// 构建条件语句并返回
return name + " " + (startInclusive ? ">=" : ">") + " " + start + " and " + name + " " + (endInclusive ? "<=" : "<") + " " + end;
}
}
3、测试
System.out.println(IntervalFormatUtil.intervalToCondition("[2,3]", "abc"));
System.out.println(IntervalFormatUtil.intervalToCondition("(2,3)", "abc"));
System.out.println(IntervalFormatUtil.intervalToCondition("(2,3]", "abc"));
结果:
abc >= 2 and abc <= 3
abc > 2 and abc < 3
abc > 2 and abc <= 3

浙公网安备 33010602011771号