2011-11-01 12 views
5

के बीच रिक्त स्थान को हटाने के लिए, toString() विधि एक वेक्टर उत्पादन इसअवहेलना toString, जैसा कि आप जानते तत्वों

[foo, bar, item, item4] 

यह सुंदर बुनियादी है, लेकिन पर बुलाया कैसे मैं तत्वों के बीच इस बजाय (हटाने के सफेद रिक्त स्थान मिल सकता है)? वापसी nom.toString() की जगह ("", "");:

[foo,bar,item,item4] 

आप सभी

संपादित करें धन्यवाद। समाधान नहीं है!

+0

आप निकालना ** सभी ** तत्वों के बीच रिक्त स्थान या केवल अंतरिक्ष चाहते हैं? यही है, '[जॉन स्मिथ, जेन डो, विल विलियम्स]' के लिए आपका वांछित आउटपुट क्या होगा? –

उत्तर

4

अपने वेक्टर वर्ग लपेटें और 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

बस वेक्टर वर्ग का विस्तार करने और ओवरराइड 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

वापसी nom.toString()। प्रतिस्थापित करें ("", ""); अच्छी तरह से काम करता है, लेकिन क्या होगा यदि मेरे तत्व में से एक "मैं एक जगह हूं" ... मुझे पता है कि मुझे इसे ओवरराइड करना है, लेकिन मैं इसे सही नहीं समझ पा रहा हूं। – user1023021

+0

बेहतर कार्यान्वयन प्रदान किया गया –

3

ओवरराइड केवल समझ में आता है अगर तुम Vector उपवर्गीकरण कर रहे हैं।

आप कर रहे हैं, तो आप उपयोग कर सकते हैं अपाचे कॉमन्स लैंग की StringUtils.join इस प्रकार है:

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

आप सादे जावा में रहने के लिए चाहते हैं, glowcoder सर्वश्रेष्ठ उत्तर है।

+0

मुझे आपके लिए चीजें करने के लिए अपाचे कॉमन्स का लाभ उठाने का विचार पसंद है, जैसे कि सामान्य नियम यह अच्छा है। – corsiKa

2

आप सुनिश्चित करें कि आप अपने तत्वों में ", " नहीं है, तो आप की कोशिश कर सकते हैं:

System.out.println(v.toString().replace(", ", ",")); 
संबंधित मुद्दे