From 4963d5034c85a57a2f3106a208155628db35240f Mon Sep 17 00:00:00 2001 From: godotg Date: Fri, 2 May 2025 16:07:50 +0800 Subject: [PATCH] fix[storage]: use commas, semicolons, newline separators to parse array --- .../java/com/zfoo/protocol/util/StringUtils.java | 1 + .../java/com/zfoo/storage/convert/ConvertUtils.java | 12 +++++------- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/protocol/src/main/java/com/zfoo/protocol/util/StringUtils.java b/protocol/src/main/java/com/zfoo/protocol/util/StringUtils.java index 0659afe5..145713df 100644 --- a/protocol/src/main/java/com/zfoo/protocol/util/StringUtils.java +++ b/protocol/src/main/java/com/zfoo/protocol/util/StringUtils.java @@ -36,6 +36,7 @@ public abstract class StringUtils { public static final String COMMA = ","; // [com·ma || 'kɒmə] n. 逗点; 逗号 public static final String COMMA_REGEX = ",|,"; + public static final String COMMON_SPLIT_REGEX = "[,,\\s]+"; public static final String PERIOD = "."; // 句号 public static final String PERIOD_REGEX = "\\."; diff --git a/storage/src/main/java/com/zfoo/storage/convert/ConvertUtils.java b/storage/src/main/java/com/zfoo/storage/convert/ConvertUtils.java index 875bda60..ead3c14e 100644 --- a/storage/src/main/java/com/zfoo/storage/convert/ConvertUtils.java +++ b/storage/src/main/java/com/zfoo/storage/convert/ConvertUtils.java @@ -68,12 +68,10 @@ public abstract class ConvertUtils { return Array.newInstance(componentType, 0); } // Use commas, semicolons, newline separators to parse - var splits = StringUtils.tokenize(content, ConfigurableApplicationContext.CONFIG_LOCATION_DELIMITERS); - Object array = Array.newInstance(componentType, splits.length); - for (var i = 0; i < splits.length; i++) { - var split = splits[i]; - var value = convert(StringUtils.trim(split), componentType); - Array.set(array, i, value); + var list = convertToList(content, componentType); + Object array = Array.newInstance(componentType, list.size()); + for (var i = 0; i < list.size(); i++) { + Array.set(array, i, list.get(i)); } return array; } @@ -83,7 +81,7 @@ public abstract class ConvertUtils { if (StringUtils.isEmpty(content)) { return Collections.emptyList(); } - var splits = content.split(StringUtils.COMMA_REGEX); + var splits = content.split(StringUtils.COMMON_SPLIT_REGEX); var list = new ArrayList(); for (var split : splits) { var value = convert(StringUtils.trim(split), genericType);