Eliminar los corchetes de un conjunto de listas a una vista de texto?

Estoy analizando contenido usando el siguiente código con jsoup.

try{ Elements divElements = jsDoc.getElementsByTag("div"); for(Element divElement : divElements){ if(divElement.attr("class").equals("article-content")){ textList.add(divElement.text()); text = textList.toString(); } } } catch(Exception e){ System.out.println("Couldnt get content"); } 

El único problema es que el contenido se devuelve con corchetes alrededor de él [] así.

Im que conjetura es becaue de la lista que estoy poniendo a. ¿Cómo puedo eliminar estos?

Reemplazar:

 text = textList.toString(); 

con:

 text = textList.toString().replace("[", "").replace("]", ""); 

Sí, es debido a la Lista. Usted tiene que Opciones:
Subclase cualquiera que sea TextList, y anule toString () o

 String temp = textList.toString(); text = temp.subString(1, temp.size() -2); 

Para la mayoría de los objetos, el método toString() no está destinado a ser utilizado para la visualización, pero por lo general la depuración. Esto se debe a que el método toString() generalmente no tiene un formato específico y puede variar dependiendo de la clase particular utilizada. Por ejemplo, un LinkedList y ArrayList podría devolver valores diferentes de toString() . Es poco probable, pero es algo que debe evitar confiar. Por supuesto, si el objeto representa el texto real ( String , StringBuilder , CharSequence ), lo anterior no se aplica.

Además, está creando y asignando la cadena varias veces en el bucle for. En su lugar, sólo debe crear la cadena después de realizar el bucle for.

Para crear la cadena puede rodar su propia o utilizar una biblioteca como Apache commons lang , que tiene un método de utilidad StringUtils.join() .

Si usted lanza su propio, puede ser algo como esto:

 Elements divElements = jsDoc.getElementsByTag("div"); Iterator<Element> iterator = divElements.iterator(); StringBuilder builder = new StringBuilder(); while (iterator.hasNext()){ Element divElement = iterator.next() if (divElement.attr("class").equals("article-content")){ builder.append(divElement.text()); if (iterator.hasNext()) { builder.append(", "); } } } text = builder.toString(); 

Utilizar regex para reemplazar los corchetes principales y de arista, String.replace () no funciona para los casos de borde que el contenido de la lista contiene corchetes.

 String text = textList.toString().replaceAll("(^\\[|\\]$)", ""); 

Implementa tu propio método para crear la String que necesitas usando iteración y StringBuffer . No es una buena práctica replace paréntesis o substring tal salida.

Puede anular el método toString ().

Ejemplo:

 class SetPrinter<E> extends HashSet<E> { public SetPrinter(Set<E> set) { super(set); } @Override public String toString() { Iterator<E> i = iterator(); if (!i.hasNext()) { return ""; } StringBuilder sb = new StringBuilder(); for (; ; ) { E e = i.next(); sb.append(e == this ? "(this Collection)" : e); if (!i.hasNext()) return sb.toString(); sb.append(","); } } } 

Utilizar:

Nuevo SetPrinter (SetToPrint) .toString ();

  • Google Volley subrayado en nombre de host
  • SetAlpha para ver programaticamente
  • Java.lang.IndexOutOfBoundsException: El índice no válido 13, el tamaño es 13
  • Android StringBody (String) está obsoleto
  • Cómo eliminar algunas palabras de una cadena en java
  • Android Emulator "no responde ¿Desea cerrarlo?
  • Compruebe la calidad de la imagen antes del OCR
  • Uso de Google para acceder a las hojas de cálculo de Google (u otras aplicaciones de Google) en Android
  • ¿Qué es diferente de putSerializable y putParcelable en Java?
  • ProGuard puede causar cálculos incorrectos
  • Cómo evitar la inyección XML como XML Bomba y ataque XXE
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.