¿Función Java para matrices como join() de PHP?
Quiero unirlo String[]
con un hilo de pegamento. ¿Existe una función para esto?
Aceptado
A partir de Java8 es posible utilizar String.join()
.
String.join(", ", new String[]{"Hello", "World", "!"})
Genera:
Hello, World, !
De lo contrario, Apache Commons Lang tiene una StringUtils
clase que tiene una join
función que unirá matrices para crear un archivo String
.
Por ejemplo:
StringUtils.join(new String[] {"Hello", "World", "!"}, ", ")
Genera lo siguiente String
:
Hello, World, !
Si buscabas qué usar en android, es:
String android.text.TextUtils.join(CharSequence delimiter, Object[] tokens)
Por ejemplo:
String joined = TextUtils.join(";", MyStringArray);
En Java 8 puedes usar
1) API de transmisión:
String[] a = new String[] {"a", "b", "c"};
String result = Arrays.stream(a).collect(Collectors.joining(", "));
2) nuevo método String.join: https://stackoverflow.com/a/21756398/466677
3) clase java.util.StringJoiner: http://docs.oracle.com/javase/8/docs/api/java/util/StringJoiner.html
Podrías escribir fácilmente una función de este tipo en unas diez líneas de código:
String combine(String[] s, String glue)
{
int k = s.length;
if ( k == 0 )
{
return null;
}
StringBuilder out = new StringBuilder();
out.append( s[0] );
for ( int x=1; x < k; ++x )
{
out.append(glue).append(s[x]);
}
return out.toString();
}