【Spring】org.springframework.util.StringUtils工具类中commaDelimitedListToStringArray的使用

简介: 【Spring】org.springframework.util.StringUtils工具类中commaDelimitedListToStringArray的使用

一、源码分析

最近在读 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数组 的。

 

完结!


相关文章
|
Java Spring
解决Spring工具类BeanUtils copyProperties方法复制null的问题
解决Spring工具类BeanUtils copyProperties方法复制null的问题
682 0
|
1月前
|
开发框架 Java 数据库
|
1月前
|
缓存 小程序 Java
别再造反射轮子了,Spring中ReflectionUtils 工具类,应有尽有!
ReflectionUtils是spring针对反射提供的工具类。
|
8月前
|
存储 NoSQL Java
Spring Boot 如何编写一个通用的 Redis 工具类
Spring Boot 如何编写一个通用的 Redis 工具类
244 0
Spring Boot 如何编写一个通用的 Redis 工具类
|
6月前
|
Java Apache Spring
Spring BeanUtils 2、Cglib BeanCopier 3、Apache BeanUtils 4、Apache PropertyUtils 5、Dozer 那么,我们到底应该选择哪种工具类更加合适呢?为什么Java开发手册中提到禁止使用Apache BeanUtils呢
Spring BeanUtils 2、Cglib BeanCopier 3、Apache BeanUtils 4、Apache PropertyUtils 5、Dozer 那么,我们到底应该选择哪种工具类更加合适呢?为什么Java开发手册中提到禁止使用Apache BeanUtils呢
72 0
|
10月前
|
Java Spring
动态获取spring管理的bean工具类
动态获取spring管理的bean工具类
123 0
|
消息中间件 JavaScript 小程序
别再自己瞎写工具类了,Spring Boot 内置工具类应有尽有, 建议收藏!!
别再自己瞎写工具类了,Spring Boot 内置工具类应有尽有, 建议收藏!!
|
Java 开发者 Spring
Spring断言工具类 “Assert” 的基本操作!
Spring断言工具类 “Assert” 的基本操作!
188 0
Spring断言工具类 “Assert” 的基本操作!
|
Java Spring
Spring自带工具类(断言、ObjectUtils、FileCopyUtils、ResourceUtils、StreamUtils、ReflectionUtils、AopUtils、AopCont)
Spring自带工具类(断言、ObjectUtils、FileCopyUtils、ResourceUtils、StreamUtils、ReflectionUtils、AopUtils、AopCont)
Spring自带工具类(断言、ObjectUtils、FileCopyUtils、ResourceUtils、StreamUtils、ReflectionUtils、AopUtils、AopCont)
|
Java Spring
Spring Boot 封装文件上传工具类
Spring Boot 封装文件上传工具类
400 0