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

posted @   JamieChyi  阅读(76)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2022-02-23 NodeJS对mysql数据库的简单操作
点击右上角即可分享
微信分享提示