月球大数据地理空间分析展示平台-【后端】-月球后台服务
13693261870
2024-01-22 fa2b9250bd671cb61f363c24d6fa2d0d0ab7d9f8
src/main/java/com/moon/server/service/all/BaseQueryService.java
@@ -61,7 +61,7 @@
                continue;
            }
            String field = convertFiled(str.substring(0, start).trim());
            String field = camelToUnderline(str.substring(0, start).trim());
            String express = str.substring(start + 1, end).trim().toLowerCase();
            String value = str.substring(end + 1).trim();
@@ -76,20 +76,43 @@
    }
    /**
     * 字段转换
     * 驼峰转换为下划线
     */
    private String convertFiled(String field) {
    public static String camelToUnderline(String str) {
        StringBuilder sb = new StringBuilder();
        for (int i = 0, c = field.length(); i < c; i++) {
            char ch = field.charAt(i);
        for (int i = 0, c = str.length(); i < c; i++) {
            char ch = str.charAt(i);
            if (Character.isUpperCase(ch)) {
                sb.append('_');
                sb.append(Character.toLowerCase(ch));
                sb.append('_').append(Character.toLowerCase(ch));
            } else {
                sb.append(ch);
            }
        }
        return sb.toString().replaceAll("_+", "_");
    }
    /**
     * 下划线转换为驼峰
     */
    public static String underlineToCamel(String str) {
        StringBuilder sb = new StringBuilder();
        boolean nextIsCapitalized = false;
        for (int i = 0, c = str.length(); i < c; i++) {
            char ch = str.charAt(i);
            if (ch == '_') {
                nextIsCapitalized = true;
                continue;
            }
            if (nextIsCapitalized) {
                sb.append(Character.toUpperCase(ch));
                nextIsCapitalized = false;
            } else {
                sb.append(Character.toLowerCase(c));
            }
        }
        return sb.toString();
    }