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 @ 2023-02-23 17:03  JamieChyi  阅读(101)  评论(0)    收藏  举报  来源