2011-11-01 8 views
5

Como saben, el método toString() llamada en una salida vectorial esteAnulación toString para eliminar los espacios entre los elementos

[foo, bar, item, item4] 

Esto es bastante básico, pero, ¿cómo podría conseguir este lugar (la eliminación de espacios en blanco entre los elementos)?

[foo,bar,item,item4] 

Gracias a todos

EDIT: nom.toString retorno() en lugar de ("", "");. no es una solución!

+0

¿Quieres eliminar ** ** TODAS espacios o sólo el espacio entre los elementos? Es decir, ¿cuál sería su resultado deseado para '[John Smith, Jane Doe, Will Williams] '? –

Respuesta

4

envolver su clase de vectores y anulan toString.

import java.util.*; 
class AwesomeVector<E> extends Vector<E> { 

    public String toString() { 
     StringBuilder sb = new StringBuilder(); 
     sb.append("["); 
     for(int i = 0; i < size(); i++) { 
      if(i != 0) sb.append(","); 
      sb.append(get(i)); 
     } 
     sb.append("]"); 
     return sb.toString(); 
    } 

    public static void main(String[] args) { 
     AwesomeVector<String> av = new AwesomeVector<String>(); 
     av.add("This"); 
     av.add("is"); 
     av.add("a test"); 
     System.out.println(av.toString()); 
    } 

} 


C:\Documents and Settings\glowcoder\My Documents>javac AwesomeVector.java 

C:\Documents and Settings\glowcoder\My Documents>java AwesomeVector 
[This,is,a test] 
2

Sólo se extienden clase Vector y redefinir la toString()

@Override 
public String toString() { 
    StringBuffer sb = new Stringbuffer("["); 

    for(int i=0; i < elementCount ;i++){ 
     sb.append(elementData.toString()); 
     if(i!= elementCount -1){ 
      sb.append(","); 
     } 
    } 

    sb.append("]"); 
    return sb.toString(); 
} 
+0

return nom.toString(). Replace ("", ""); funciona bien, pero ¿qué pasa si uno de mis elementos es "Soy un espacio" ... Sé que tengo que anularlo, pero no puedo hacerlo bien. – user1023021

+0

proporcionó la mejor implementación –

3

Anulación sólo tiene sentido si está subclassing Vector.

Si es así, entonces se puede utilizar de la siguiente manera StringUtils.join Apache Commons Lang:

@Override 
public String toString() { 
    return "[" + StringUtils.join(this, ",") + "]"; 
} 

Si usted desea permanecer en la llanura de Java, glowcoder tiene la mejor respuesta.

+0

Me gusta la idea de aprovechar Apache Commons para hacer cosas por usted, solo como regla general es agradable. – corsiKa

2

Si está seguro de que usted no tiene ", " en sus elementos, puede intentar:

System.out.println(v.toString().replace(", ", ",")); 
Cuestiones relacionadas