Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否有一种实用方法可以按给定的字符串分隔列表?_Java_Apache Commons_Utility Method - Fatal编程技术网

Java 是否有一种实用方法可以按给定的字符串分隔列表?

Java 是否有一种实用方法可以按给定的字符串分隔列表?,java,apache-commons,utility-method,Java,Apache Commons,Utility Method,在apachecommonlang或springutils中是否有类似的内容,或者您是否为此编写了自己的Util方法 List<String> list = new ArrayList<String>(); list.add("moo"); list.add("foo"); list.add("bar"); String enumeratedList = Util.enumerate(list, ", "); assert enumeratedList == "moo

apachecommonlang
springutils
中是否有类似的内容,或者您是否为此编写了自己的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";
您可以通过以下方式使用(来自commons lang):

String enumeratedList = StringUtils.join(list.toArray(), ", ");

如果你不想依赖commons-lang,那么输入就很简单了。把一个列表转换成一个数组,然后再把它连接成一个字符串,这也不好。相反,只需迭代您的集合。比使用Collection更好的是使用Iterable,它可以处理任何可以迭代的内容(甚至是某种未知长度的流或集合)

提供类,可按如下方式使用:

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));
    }

}
公共类主{
公共静态void main(字符串[]args){
List=Lists.newLinkedList();
列表。添加(“1”);
列表。添加(“2”);
列表。添加(“3”);
System.out.println(Joiner.on(“,”).join(list));
}
}

谢谢,API中忽略了这一点。虽然我喜欢bozho的解决方案,但我认为没有理由不为循环创建一个简单的
,然后自己完成(需要3-4行代码)。我的意思是,如果到目前为止你还没有在你的项目中包括
commons lang
,你会把它只包括在一个你可以自己编写一分钟的工具中吗?;-)@迪米特科:因为一条线小于3-4。它更具可读性,更不容易出错,一旦包含了库,您就可以“在任何地方”使用它。只是指出,在项目中只包含一个库是不值得的。如果你已经包含了它,为什么不全面使用它呢?完全同意
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
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));
    }

}