List或数组到String的转换

简介:
在编程过程中偶尔会遇到需要将List或数组以某个字符间隔的形式将其拼接成一个字符串,比如在发送邮件时,to列表是以分号分割的字符串,然而在程序中我们可能会一List<String>或String[]的形式存在,此时就需要做List或数组到String的转换。
在C#中,String类提供了一个叫Join的方法,因而我们使用一句代码就可以完成这样的工作:
string  result  =  string .Join( " " , toList.ToArray());
但是在Java中貌似没有提供类似的方法(至少我还没有找到),既然没有提供,我们就可以自己来写一个:
public   class  StringUtils {
    
/**
     * StringUitls类中的方法都是静态的,
     * 阻止其创建实例,以引起一些误解。
     * 另一种做法是将其变为abstract类,
     * 但是这样也会引起一些误解,
     * 因为abstract类的意思就是可以继承的,
     * 然而该类却不应该由其他类来继承。
     * 因而abstract类个人感觉不是一种好的做法。
     
*/
    
private  StringUtils() { }
    
    
/**
     * 将array中的内容以delimiter为间隔拼接字符串
     * 
     * 
@param  array
     * 
@param  delimiter
     * 
@return
     
*/
    
public   static  String join(Object[] array, String delimiter) {
        
if (array  ==   null ) {
            
throw   new  IllegalArgumentException();
        }
        
        
if (array.length  ==   0 ) {
            
return   "" ;
        }
        
        StringBuilder builder 
=   new  StringBuilder();
        
for (Object item : array) {
            builder.append(item.toString() 
+  delimiter);
        }
        builder.delete(builder.length() 
-  delimiter.length(), builder.length());
        
return  builder.toString();
    }
    
    
/**
     * 将list中的内容以delimiter为间隔拼接字符串
     * 
     * 
@param  list
     * 
@param  delimiter
     * 
@return
     
*/
    @SuppressWarnings(
" unchecked " )
    
public   static  String join(List list, String delimiter) {
        
if (list  ==   null ) {
            
throw   new  IllegalArgumentException();
        }
        
        
return  join(list.toArray(), delimiter);
    }
}

测试代码如下:
 1      @Test
 2       public   void  testListToString() {
 3          List < String >  list  =   new  ArrayList < String > ();
 4          list.add( " Item1 " );
 5          list.add( " Item2 " );
 6          list.add( " Item3 " );
 7          
 8          String expected  =   " [Item1, Item2, Item3] " ;
 9          
10          assertEquals(expected, list.toString());
11      }
12      
13      @Test
14       public   void  testListToString2() {
15          List < String >  list  =   new  ArrayList < String > ();
16          list.add( " Item1 " );
17          list.add( " Item2 " );
18          list.add( " Item3 " );
19          
20          String expected  =   " Item1;Item2;Item3 " ;
21          
22          assertEquals(expected, StringUtils.join(list,  " ; " ));
23      }

相关文章
|
1月前
|
JSON 前端开发 Java
List<String> 如何传参
List<String> 如何传参
64 0
|
1月前
如何实现数组和 List 之间的转换?
如何实现数组和 List 之间的转换?
|
15天前
|
存储 NoSQL 安全
Redis第六弹-List列表-(相当于数组/顺序表)Lpush key element-一次可以插入多个元素(假如key已经存在,并且key对应的value并非是list,则会报错)
Redis第六弹-List列表-(相当于数组/顺序表)Lpush key element-一次可以插入多个元素(假如key已经存在,并且key对应的value并非是list,则会报错)
|
27天前
|
NoSQL Java Redis
redis-学习笔记(string , hash , list , set , zset 前置知识)
redis-学习笔记(string , hash , list , set , zset 前置知识)
7 0
redis-学习笔记(string , hash , list , set , zset 前置知识)
|
1月前
|
NoSQL Java Unix
Redis基础操作 String List
Redis基础操作 String List
17 0
|
1月前
|
JSON 数据格式
使用 Gson 将 Map、List等转换为json string
使用 Gson 将 Map、List等转换为json string
26 0
|
1月前
|
存储 索引 Python
多数pythoneer只知有列表list却不知道python也有array数组
多数pythoneer只知有列表list却不知道python也有array数组
31 0
|
1月前
使用List中的remove方法遇到数组越界
使用List中的remove方法遇到数组越界
37 2
|
1月前
|
Java
Java中拷贝list数组如何实现
Java中拷贝list数组如何实现
17 0
|
1月前
|
SQL JSON Apache
Flink问题之嵌套 json 中string 数组的解析异常如何解决
Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。本合集提供有关Apache Flink相关技术、使用技巧和最佳实践的资源。
240 1