¿Función Java para matrices como join() de PHP?

Resuelto Nick Heiner asked hace 15 años • 24 respuestas

Quiero unirlo String[]con un hilo de pegamento. ¿Existe una función para esto?

Nick Heiner avatar Oct 04 '09 09:10 Nick Heiner
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 StringUtilsclase que tiene una joinfunción que unirá matrices para crear un archivo String.

Por ejemplo:

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

Genera lo siguiente String:

Hello, World, !
coobird avatar Oct 04 '2009 02:10 coobird

Si buscabas qué usar en android, es:

String android.text.TextUtils.join(CharSequence delimiter, Object[] tokens)

Por ejemplo:

String joined = TextUtils.join(";", MyStringArray);
Noah avatar Feb 20 '2013 18:02 Noah

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

Marek Gregor avatar Mar 18 '2014 09:03 Marek Gregor

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();
}
Jay avatar Oct 04 '2009 03:10 Jay