代码之家  ›  专栏  ›  技术社区  ›  Christopher Klewes

是否有一个实用程序方法按给定的字符串分隔列表?

  •  3
  • Christopher Klewes  · 技术社区  · 16 年前

    有类似以下的东西吗 Apache Common Lang Spring Utils 或者您是否为此编写了自己的Util方法?

    List<String> list = new ArrayList<String>();
    list.add("moo");
    list.add("foo");
    list.add("bar");
    
    String enumeratedList = Util.enumerate(list, ", ");
    
    assert enumeratedList == "moo, foo, bar";
    

    我记得 implode 在PHP中,这就是我搜索Java的原因。

    $array = array('lastname', 'email', 'phone');
    $comma_separated = implode(",", $array);
    
    3 回复  |  直到 13 年前
        1
  •  11
  •   nkr user2915097    13 年前

    您可以在下面的方式中使用 stringutils.join(object[]array,string delimiter) >(from commons lang)in the following way:。

    string EnumeratedList=stringutils.join(list.toarray(),,,“);
    < /代码> 
    (来自通用语言)如下:

    String enumeratedList = StringUtils.join(list.toArray(), ", ");
    
        2
  •  4
  •   Jared Russell    16 年前

    Google Collections 提供 Joiner 类,可以这样使用:

    public class Main {
    
        public static void main(String[] args) {
            List<String> list = Lists.newLinkedList();
            list.add("1");
            list.add("2");
            list.add("3");
            System.out.println(Joiner.on(", ").join(list));
        }
    
    }
    
        3
  •  3
  •   itsadok    16 年前

    如果您不希望依赖commons-lang,那么inpulement就很简单了。将列表转换为数组并将其重新连接为字符串也不太好。相反,只需迭代您的集合。比使用collection更好的是使用iterable,它可以处理任何可以迭代的内容(甚至是某种长度未知的流或集合)。

    import java.util.Arrays;
    import java.util.Iterator;
    
    public class JoinDemo {
      public static String join(String sep, Iterable<String> i) {
        StringBuilder sb = new StringBuilder();
        for (Iterator<String> it = i.iterator(); it.hasNext();) {
          sb.append(it.next());
          if (it.hasNext())
            sb.append(sep);
        }
        return sb.toString();
      }
    
      public static void main(String[] args) {
        System.out.println(join(",", Arrays.asList(args)));
      }
    }
    

    例子:

    # javac JoinDemo.java
    # java JoinDemo a b c
    a,b,c
    
    推荐文章