我想加入一个字符串[]与胶水字符串。有这个函数吗?


当前回答

你喜欢我只用String类方法的3行方式吗?

static String join(String glue, String[] array) {
    String line = "";
    for (String s : array) line += s + glue;
    return (array.length == 0) ? line : line.substring(0, line.length() - glue.length());
}

其他回答

从Java8开始,可以使用String.join()。

String.join(", ", new String[]{"Hello", "World", "!"})

生成:

Hello, World, !

另外,Apache Commons Lang有一个StringUtils类,它有一个连接函数,可以将数组连接在一起形成一个String。

例如:

StringUtils.join(new String[] {"Hello", "World", "!"}, ", ")

生成以下字符串:

Hello, World, !

有一个简单的速记技巧,我大多数时候使用。

String op = new String;
for (int i : is) 
{
    op += candidatesArr[i-1]+",";
}
op = op.substring(0, op.length()-1);

谷歌番石榴的库也有这种能力。你也可以从API中看到String[]的例子。

正如api中已经描述的,要注意构建器方法的不可变性。

它可以接受一个对象数组,所以它在你的情况下是可行的。在我以前的经验中,我尝试加入一个堆栈,这是一个可迭代的,它工作得很好。

我的例子:

Deque<String> nameStack = new ArrayDeque<>();
nameStack.push("a coder");
nameStack.push("i am");
System.out.println("|" + Joiner.on(' ').skipNulls().join(nameStack) + "|");

打印出来:|我是一个编码员|

在Java 8中你可以使用

1)流API:

String[] a = new String[] {"a", "b", "c"};
String result = Arrays.stream(a).collect(Collectors.joining(", "));

2) new String。加入方式:https://stackoverflow.com/a/21756398/466677

3) java.util.StringJoiner类:http://docs.oracle.com/javase/8/docs/api/java/util/StringJoiner.html

如果你正在使用Spring框架,那么你有StringUtils类:

import static org.springframework.util.StringUtils.arrayToDelimitedString;

arrayToDelimitedString(new String[] {"A", "B", "C"}, "\n");