Нет, не в текущей библиотеке Java.
В JDK7 вы должны быть в состоянии написать String.join("", strings)
. Было обнаружено, что «85%» использований для получения индекса в шикарном цикле for заключалось в соединении строк (что вы можете обойтись в любом случае).
Полагаю, если вы хотите быть очень эффективным, вы можете написать это примерно так:
public static String concat(String... strs) {
int size = 0;
for (String str : strs) {
size += str.length;
}
final char[] cs = new char[size];
int off = 0;
try {
for (String str : strs) {
int len = str.length();
str.getChars(0, len, cs, off);
off += len;
}
} catch (ArrayIndexOutOfBoundsException exc) {
throw new ConcurrentModificationException(exc);
}
if (off != cs.length) {
throw new ConcurrentModificationException();
}
return new String(cs);
}
(Конечно, не скомпилировано и не протестировано.)