@Princeyesuraj, la respuesta oficial es proporcionada por adarshr . Si desea un separador propio, puede probar la respuesta de JoeSlav y, si no hay problemas de subprocesos, puede usar StringBuilder en lugar de StringBuffer por eficiencia. La respuesta de krock es buena, pero en mi opinión es un poco exagerado.
Dante May Code
Respuestas:
470
Si solo desea un volcado de "estilo de depuración" de una matriz:
String str =Arrays.toString(arr);
o, para más control (antes de Java 8):
StringBuilder builder =newStringBuilder();for(String s : arr){
builder.append(s);}String str = builder.toString();
(Java 8 y superior):
String str =String.join(",", arr);
Y si vienes desde el ángulo de Android:
String str =TextUtils.join(",", arr);
Puede modificar lo anterior dependiendo de qué caracteres, si los hay, desea entre cadenas.
Es posible que vea cerca de código idéntico al código de Java pre-8, pero usando StringBuffer- StringBuilderes una nueva clase que no es seguro para subprocesos, pero por lo tanto tiene un mejor rendimiento en un solo hilo, ya que elimina la sincronización innecesaria. En resumen, es mejor usarlo StringBuilderen el 99% de los casos: en cuanto a funcionalidad, los dos son idénticos.
NO use una cadena y simplemente agregue con + = como algunas de las respuestas que se muestran aquí. Esto envía el GC a través del techo porque está creando y tirando tantos objetos de cadena como elementos en su matriz. Para las matrices pequeñas, es posible que no note la diferencia, pero para las grandes puede ser mucho más lenta.
Usa los bienes comunes de Apache StringUtils.join(). Toma una matriz, como parámetro (y también tiene sobrecargas Iterabley Iteratorparámetros) y llama toString()a cada elemento (si no es nulo) para obtener la representación de cadena de cada elemento. Cada representación de cadena de elementos se une en una cadena con un separador en el medio si se especifica uno:
Devuelve una representación de cadena del "contenido profundo" de la matriz especificada. Si la matriz contiene otras matrices como elementos, la representación de cadena contiene su contenido, etc. Este método está diseñado para convertir matrices multidimensionales en cadenas
Si no necesita mucho control, creo que esta es la solución más simple ya que no necesita una biblioteca de terceros. Aquí hay un ejemplo: System.out.println (Arrays.deepToString (args));
Desea código que produzca una cadena de arrayList,
Iterate through all elements in list and add it to your String result
puede hacer esto de 2 maneras: usando String como resultado o StringBuffer / StringBuilder.
Ejemplo:
String result ="";for(String s : list){
result += s;}
... pero esto no es una buena práctica por razones de rendimiento. Mejor es usar StringBuffer (hilos seguros) o StringBuilder que son más apropiados para agregar cadenas
Su respuesta es básicamente la misma que smas; solo un poco más complicado; por lo tanto, seguro que no es "el más fácil". Y además, Arrays.toString () es aún más fácil.
GhostCat
-22
Si sabe cuántos elementos tiene la matriz, una manera simple es hacer esto:
array.toString()
? Sé más específico.Respuestas:
Si solo desea un volcado de "estilo de depuración" de una matriz:
o, para más control (antes de Java 8):
(Java 8 y superior):
Y si vienes desde el ángulo de Android:
Puede modificar lo anterior dependiendo de qué caracteres, si los hay, desea entre cadenas.
Es posible que vea cerca de código idéntico al código de Java pre-8, pero usando
StringBuffer
-StringBuilder
es una nueva clase que no es seguro para subprocesos, pero por lo tanto tiene un mejor rendimiento en un solo hilo, ya que elimina la sincronización innecesaria. En resumen, es mejor usarloStringBuilder
en el 99% de los casos: en cuanto a funcionalidad, los dos son idénticos.NO use una cadena y simplemente agregue con + = como algunas de las respuestas que se muestran aquí. Esto envía el GC a través del techo porque está creando y tirando tantos objetos de cadena como elementos en su matriz. Para las matrices pequeñas, es posible que no note la diferencia, pero para las grandes puede ser mucho más lenta.
fuente
Arrays.toString(yourArray);
pero supongo que loyourArray.toString();
1.8
también puedes usarString::join
, en lugar del for-loop.String.join("", arr);
Usa los bienes comunes de Apache
StringUtils.join()
. Toma una matriz, como parámetro (y también tiene sobrecargasIterable
yIterator
parámetros) y llamatoString()
a cada elemento (si no es nulo) para obtener la representación de cadena de cada elemento. Cada representación de cadena de elementos se une en una cadena con un separador en el medio si se especifica uno:Produce:
fuente
Me gusta usar Guava Joiner de Google para esto, por ejemplo:
produciría la misma cadena que:
ETA: Java 8 tiene soporte similar ahora:
No puedo ver el soporte para omitir valores nulos, pero eso es fácil de solucionar.
fuente
null
sería "aquel cuyo nombre no debe mencionarse" :-)Joiner.on(", ").useForNull("Voldemort").join("Harry", null, "Ron", "Hermione");
String.join(", ", "Harry", null, "Ron", "Hermione").replaceAll("null", "Voldermart");
Podría hacer esto, dada una matriz
a
de tipo primitivo:fuente
Desde Java 8, la forma más simple que creo es:
De esta manera, puede elegir un delimitador arbitrario.
fuente
Prueba el Arrays.deepToString método .
Devuelve una representación de cadena del "contenido profundo" de la matriz especificada. Si la matriz contiene otras matrices como elementos, la representación de cadena contiene su contenido, etc. Este método está diseñado para convertir matrices multidimensionales en cadenas
fuente
Pruebe los métodos sobrecargados de Arrays.toString .
O bien, pruebe esta implementación genérica a continuación:
fuente
El siguiente es un ejemplo de conversión de matriz a cadena.
fuente
Si no tiene la opción, pero para usar Java 6 o 7, entonces debe usar Divide & Conquer join.
fuente
Desea código que produzca una cadena de arrayList,
puede hacer esto de 2 maneras: usando String como resultado o StringBuffer / StringBuilder.
Ejemplo:
... pero esto no es una buena práctica por razones de rendimiento. Mejor es usar StringBuffer (hilos seguros) o StringBuilder que son más apropiados para agregar cadenas
fuente
Utilice el método de combinación de la biblioteca StringUtils de Apache Commons .
fuente
fuente
Si sabe cuántos elementos tiene la matriz, una manera simple es hacer esto:
fuente