From cb4640cbb7287bfb9cc5a90096de87d203b9e89c Mon Sep 17 00:00:00 2001 From: thinkgem Date: Thu, 18 Sep 2025 21:47:28 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A9=BC=E5=B3=B0=E5=91=BD=E5=90=8D=E6=B3=95?= =?UTF-8?q?=E5=B7=A5=E5=85=B7=E4=BC=98=E5=8C=96=EF=BC=8C=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E4=B8=8B=E5=88=92=E7=BA=BF=E5=BC=80=E5=A4=B4=E7=9A=84=E6=97=B6?= =?UTF-8?q?=E5=80=99=E5=BF=BD=E7=95=A5=E5=AE=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/jeesite/common/lang/StringUtils.java | 18 +++++------ .../jeesite/test/lang/StringUtilsTest.java | 32 +++++++++++++++++++ 2 files changed, 40 insertions(+), 10 deletions(-) create mode 100644 common/src/test/java/com/jeesite/test/lang/StringUtilsTest.java diff --git a/common/src/main/java/com/jeesite/common/lang/StringUtils.java b/common/src/main/java/com/jeesite/common/lang/StringUtils.java index 2140ede7..2aceba28 100644 --- a/common/src/main/java/com/jeesite/common/lang/StringUtils.java +++ b/common/src/main/java/com/jeesite/common/lang/StringUtils.java @@ -270,7 +270,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils { } /** - * 驼峰命名法工具 + * 转换为驼峰命名法 * @return * camelCase("hello_world") == "helloWorld" * capCamelCase("hello_world") == "HelloWorld" @@ -283,37 +283,35 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils { s = s.toLowerCase(); StringBuilder sb = new StringBuilder(s.length()); boolean upperCase = false; - for (int i = 0; i < s.length(); i++) { + for (int i = 0, j = 0; i < s.length(); i++) { char c = s.charAt(i); if (c == UNDERLINE.charAt(0) || c == MINUS.charAt(0)) { - upperCase = i != 1; // 不允许第二个字符是大写 + upperCase = j > 1; // 不允许第二个字符是大写 } else if (upperCase) { sb.append(Character.toUpperCase(c)); upperCase = false; + j++; } else { sb.append(c); + j++; } } return sb.toString(); } /** - * 驼峰命名法工具 + * 转换为驼峰命名法(首字母大写) * @return * camelCase("hello_world") == "helloWorld" * capCamelCase("hello_world") == "HelloWorld" * uncamelCase("helloWorld") = "hello_world" */ public static String capCamelCase(String s) { - if (s == null) { - return null; - } - s = camelCase(s); - return s.substring(0, 1).toUpperCase() + s.substring(1); + return cap(camelCase(s)); } /** - * 驼峰命名法工具 + * 取消驼峰命名发 * @return * camelCase("hello_world") == "helloWorld" * capCamelCase("hello_world") == "HelloWorld" diff --git a/common/src/test/java/com/jeesite/test/lang/StringUtilsTest.java b/common/src/test/java/com/jeesite/test/lang/StringUtilsTest.java new file mode 100644 index 00000000..18ed77ce --- /dev/null +++ b/common/src/test/java/com/jeesite/test/lang/StringUtilsTest.java @@ -0,0 +1,32 @@ +/** + * Copyright (c) 2013-Now http://jeesite.com All rights reserved. + * No deletion without permission, or be held responsible to law. + */ +package com.jeesite.test.lang; + +import com.jeesite.common.lang.StringUtils; + +import java.text.ParseException; + +/** + * 字符串工具测试类 + * @author ThinkGem + * @version 2025-09-18 + */ +public class StringUtilsTest { + + public static void main(String[] args) throws ParseException { + System.out.println(StringUtils.camelCase("id_name") + " = idName"); + System.out.println(StringUtils.camelCase("_id_name") + " = idName"); + System.out.println(StringUtils.camelCase("__id_name") + " = idName"); + System.out.println(StringUtils.camelCase("a_id") + " = aid"); + System.out.println(StringUtils.camelCase("a_b_id") + " = abId"); + System.out.println(StringUtils.camelCase("__a_id") + " = aid"); + System.out.println(StringUtils.camelCase("__a_b_id") + " = abId"); + System.out.println(StringUtils.capCamelCase("id_name") + " = IdName"); + System.out.println(StringUtils.capCamelCase("a_b_id_name") + " = AbIdName"); + System.out.println(StringUtils.uncamelCase("abIdName") + " = ab_id_name"); + System.out.println(StringUtils.uncamelCase("AbIdName") + " = ab_id_name"); + } + +}