From f8017c31d54be2c49f12e4a39809ac2fcd5fb3c4 Mon Sep 17 00:00:00 2001 From: looly Date: Wed, 5 Jan 2022 18:45:45 +0800 Subject: [PATCH] fux bug --- CHANGELOG.md | 1 + .../main/java/cn/hutool/core/text/NamingCase.java | 2 +- .../java/cn/hutool/core/text/NamingCaseTest.java | 15 +++++++++++++++ .../java/cn/hutool/core/util/StrUtilTest.java | 6 ------ 4 files changed, 17 insertions(+), 7 deletions(-) create mode 100644 hutool-core/src/test/java/cn/hutool/core/text/NamingCaseTest.java diff --git a/CHANGELOG.md b/CHANGELOG.md index 55d6a16c4..78d7e7d36 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ * 【core 】 修复CsvParser行号有误问题(pr#2065@Github) * 【http 】 修复HttpRequest.of无法自动添加http前缀问题(issue#I4PEYL@Gitee) * 【core 】 修复 `CharSequenceUtil.brief(str, maxLength)` 方法字符串越界问题,以及 `maxLength` 部分值时结果与预期不符的问题(pr#2068@Github) +* 【core 】 修复NamingCase中转换下划线字母+数字转换问题(issue#2070@Github) ------------------------------------------------------------------------------------------------------------- # 5.7.18 (2021-12-25) diff --git a/hutool-core/src/main/java/cn/hutool/core/text/NamingCase.java b/hutool-core/src/main/java/cn/hutool/core/text/NamingCase.java index fc5a753a3..a35d78f1e 100644 --- a/hutool-core/src/main/java/cn/hutool/core/text/NamingCase.java +++ b/hutool-core/src/main/java/cn/hutool/core/text/NamingCase.java @@ -90,7 +90,7 @@ public class NamingCase { } else if (Character.isLowerCase(preChar)) { // 前一个为小写 sb.append(symbol); - if (null == nextChar || Character.isLowerCase(nextChar)) { + if (null == nextChar || Character.isLowerCase(nextChar) || CharUtil.isNumber(nextChar)) { //普通首字母大写,如aBcc -> a_bcc c = Character.toLowerCase(c); } diff --git a/hutool-core/src/test/java/cn/hutool/core/text/NamingCaseTest.java b/hutool-core/src/test/java/cn/hutool/core/text/NamingCaseTest.java new file mode 100644 index 000000000..a8800578a --- /dev/null +++ b/hutool-core/src/test/java/cn/hutool/core/text/NamingCaseTest.java @@ -0,0 +1,15 @@ +package cn.hutool.core.text; + +import cn.hutool.core.lang.Dict; +import org.junit.Assert; +import org.junit.Test; + +public class NamingCaseTest { + @Test + public void toUnderlineCaseTest(){ + // https://github.com/dromara/hutool/issues/2070 + Dict.create() + .set("customerNickV2", "customer_nick_v2") + .forEach((key, value) -> Assert.assertEquals(value, NamingCase.toUnderlineCase(key))); + } +} diff --git a/hutool-core/src/test/java/cn/hutool/core/util/StrUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/util/StrUtilTest.java index 7c3bd2be8..654466dab 100644 --- a/hutool-core/src/test/java/cn/hutool/core/util/StrUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/util/StrUtilTest.java @@ -421,12 +421,6 @@ public class StrUtilTest { .set("HelloWorld_test", "hello_world_test") .set("H2", "H2") .set("H#case", "H#case") - .forEach((key, value) -> Assert.assertEquals(value, StrUtil.toUnderlineCase(key))); - } - - @Test - public void toUnderLineCaseTest2() { - Dict.create() .set("PNLabel", "PN_label") .forEach((key, value) -> Assert.assertEquals(value, StrUtil.toUnderlineCase(key))); }