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      }

相关文章
|
6天前
|
存储 JSON NoSQL
redis基本数据结构(String,Hash,Set,List,SortedSet)【学习笔记】
这篇文章是关于Redis基本数据结构的学习笔记,包括了String、Hash、Set、List和SortedSet的介绍和常用命令。文章解释了每种数据结构的特点和使用场景,并通过命令示例演示了如何在Redis中操作这些数据结构。此外,还提供了一些练习示例,帮助读者更好地理解和应用这些数据结构。
redis基本数据结构(String,Hash,Set,List,SortedSet)【学习笔记】
|
2月前
|
XML Java API
List与String相互转化方法汇总
本文汇总了List与String相互转化的多种方法,包括使用`String.join()`、`StringBuilder`、Java 8的Stream API、Apache Commons Lang3的`StringUtils.join()`以及Guava的`Joiner.on()`方法实现List转String;同时介绍了使用`split()`方法、正则表达式、Apache Commons Lang3的`StringUtils.split()`及Guava的`Splitter.on()`方法实现String转List。
List与String相互转化方法汇总
|
2月前
|
JavaScript 前端开发
JavaScript基础&实战(5)js中的数组、forEach遍历、Date对象、Math、String对象
这篇文章介绍了JavaScript中的数组、Date对象、Math对象以及包装类(String、Number、Boolean),并详细讲解了数组的创建、方法(如forEach、push、pop、unshift、slice、splice)和遍历操作,以及工厂方法创建对象和原型对象的概念。
JavaScript基础&实战(5)js中的数组、forEach遍历、Date对象、Math、String对象
|
3月前
|
XML Java API
List与String相互转化的方法有哪些
摘要:本文概述了Java中List转换为String及反之的多种策略。使用`String.join()`可简洁地连接List元素;`StringBuilder`提供灵活控制;Java 8 Stream API收集器简化操作;Apache Commons Lang3的`StringUtils.join()`和Guava的`Joiner.on()`支持外部库的高效转换。
|
4月前
|
存储 算法 搜索推荐
深入解析String数组的操作与性能优化策略
深入解析String数组的操作与性能优化策略
|
3月前
|
存储 Java 数据处理
定义和使用String数组
定义和使用String数组
|
3月前
|
存储
数据存储之数组的特点,长度固定,适应变化需求,集合类特点是空间可变,ArrayList泛型,ArrayList<String> array = new ArrayList<String>()
数据存储之数组的特点,长度固定,适应变化需求,集合类特点是空间可变,ArrayList泛型,ArrayList<String> array = new ArrayList<String>()
|
3月前
|
存储 Java 开发者
String数组的初始化及操作技巧
String数组的初始化及操作技巧
|
3月前
|
存储 算法 搜索推荐
深入解析String数组的操作与性能优化策略
深入解析String数组的操作与性能优化策略
|
4月前
|
存储 Java 数据库
解析和使用String数组的方法
解析和使用String数组的方法