一、源码分析
最近在读 Spring 源码,发现在读的过程中有很多地方使用 org.springframework.util 包下的 StringUtils 工具类,比如这次在源码中看到StringUtils.commaDelimitedListToStringArray() 用法,以下是在 Spring 源码中看到的这种用法:
在查看 org.springframework.util.StringUtils 源码中经过多次调用,最终在方法 delimitedListToStringArray(),得到答案。
public static String[] commaDelimitedListToStringArray(@Nullable String str) { return delimitedListToStringArray(str, ","); } public static String[] delimitedListToStringArray(@Nullable String str, @Nullable String delimiter) { return delimitedListToStringArray(str, delimiter, (String)null); } public static String[] delimitedListToStringArray(@Nullable String str, @Nullable String delimiter, @Nullable String charsToDelete) { if (str == null) { return new String[0]; } else if (delimiter == null) { return new String[]{str}; } else { List<String> result = new ArrayList(); int pos; if ("".equals(delimiter)) { for(pos = 0; pos < str.length(); ++pos) { result.add(deleteAny(str.substring(pos, pos + 1), charsToDelete)); } } else { int delPos; for(pos = 0; (delPos = str.indexOf(delimiter, pos)) != -1; pos = delPos + delimiter.length()) { result.add(deleteAny(str.substring(pos, delPos), charsToDelete)); } if (str.length() > 0 && pos <= str.length()) { result.add(deleteAny(str.substring(pos), charsToDelete)); } } return toStringArray((Collection)result); } }
二、使用实例
其实,这个方法 commaDelimitedListToStringArray
就是以逗号为分隔符,把一个 string 转成一个 string数组 的。
完结!