From 0a9005668f84ecfdc47a5a43e5a363fbdbb064f2 Mon Sep 17 00:00:00 2001 From: ZhouXY108 Date: Wed, 2 Apr 2025 10:34:39 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20IDCardNumber#toDesensitizedString=20?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=20StringTools#desensitize=20=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E8=84=B1=E6=95=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plusone/commons/model/IDCardNumber.java | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/src/main/java/xyz/zhouxy/plusone/commons/model/IDCardNumber.java b/src/main/java/xyz/zhouxy/plusone/commons/model/IDCardNumber.java index 3e7c56d..2277246 100644 --- a/src/main/java/xyz/zhouxy/plusone/commons/model/IDCardNumber.java +++ b/src/main/java/xyz/zhouxy/plusone/commons/model/IDCardNumber.java @@ -19,7 +19,7 @@ package xyz.zhouxy.plusone.commons.model; import java.time.LocalDate; import java.time.Period; -import xyz.zhouxy.plusone.commons.util.AssertTools; +import xyz.zhouxy.plusone.commons.util.StringTools; /** * 身份证号 @@ -42,7 +42,9 @@ public interface IDCardNumber { */ LocalDate getBirthDate(); - /** 计算年龄 */ + /** + * 计算年龄 + */ default int getAge() { LocalDate now = LocalDate.now(); return Period.between(getBirthDate(), now).getYears(); @@ -53,22 +55,15 @@ public interface IDCardNumber { // ================================ default String toDesensitizedString() { - return toDesensitizedString(DEFAULT_REPLACED_CHAR, DEFAULT_DISPLAY_FRONT, DEFAULT_DISPLAY_END); + return StringTools.desensitize(value(), DEFAULT_REPLACED_CHAR, DEFAULT_DISPLAY_FRONT, DEFAULT_DISPLAY_END); } default String toDesensitizedString(int front, int end) { - return toDesensitizedString(DEFAULT_REPLACED_CHAR, front, end); + return StringTools.desensitize(value(), DEFAULT_REPLACED_CHAR, front, end); } default String toDesensitizedString(char replacedChar, int front, int end) { - final String value = value(); - AssertTools.checkArgument(front >= 0 && end >= 0); - AssertTools.checkArgument((front + end) <= value.length(), "需要截取的长度不能大于身份证号长度"); - final char[] charArray = value.toCharArray(); - for (int i = front; i < charArray.length - end; i++) { - charArray[i] = replacedChar; - } - return String.valueOf(charArray); + return StringTools.desensitize(value(), replacedChar, front, end); } // ================================