zl程序教程

您现在的位置是:首页 >  其他

当前栏目

List或数组到String的转换

2023-09-14 08:59:40 时间
在编程过程中偶尔会遇到需要将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     }
知识分享之Golang——常用的类型转换int、string、float互相转换 知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。 知识分享系列目前包含Java、Golang、Linux、Docker等等。