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í.
- ¿Es posible utilizar Java 8 para el desarrollo de Android?
- Combinación de objeto Realm y objeto Gson
- "ItemizedOverlay" no se puede resolver con un tipo
- Utilizando acelerómetro, giroscopio y brújula para calcular el movimiento del dispositivo en el mundo 3D
- Alterar el orden del contenido para ayudar a eclipse en el desarrollo de Android
Im que conjetura es becaue de la lista que estoy poniendo a. ¿Cómo puedo eliminar estos?
- Entero aleatorio: Android
- ¿Cómo poner Android a modo de espera mediante programación?
- Cómo cargar baldosas de un mapa de bits grande en Android?
- Parámetros incorrectos: BadParametersError: Los parámetros eran incorrectos. Queríamos capacidades requeridas en la cuadrícula de Selenium mientras ejecuta Appium
- Deep linking en Android no inicia la aplicación y redirige a Android market market
- Android: validar el archivo xml en tiempo de compilación?
- Comprobar si existe una entrada en una base de datos
- SQL eliminar de una tabla + un jointable?
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 ();