From fa2b9250bd671cb61f363c24d6fa2d0d0ab7d9f8 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期一, 22 一月 2024 15:36:04 +0800 Subject: [PATCH] 添加 驼峰转换为下划线 --- src/main/java/com/moon/server/service/all/BaseQueryService.java | 37 ++++++++++++++++++++++++++++++------- 1 files changed, 30 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/moon/server/service/all/BaseQueryService.java b/src/main/java/com/moon/server/service/all/BaseQueryService.java index 41d19ad..bbef592 100644 --- a/src/main/java/com/moon/server/service/all/BaseQueryService.java +++ b/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(); } -- Gitblit v1.9.3