2012-06-03 9 views
5

मैं स्ट्रिंगबिल्डर को व्हाइटस्पेस के कुछ नंबर (1 और 100 के बीच) कैसे जोड़ सकता हूं?स्ट्रिंगबिल्डर को कुछ जगहों को व्हाइटस्पेस कैसे जोड़ना है?

StringBuilder nextLine = new StringBuilder(); 
string time = Util.CurrentTime; 
nextLine.Append(time); 
nextLine.Append(/* add (100 - time.Length) whitespaces */); 

"आदर्श" समाधान क्या होगा? for लूप बदसूरत है। मैं सरणी भी बना सकता हूं जहां whitespaces[i] स्ट्रिंग है जिसमें बिल्कुल i व्हाइटस्पेस हैं, लेकिन यह बहुत लंबा हार्डकोडेड सरणी होगी। ,

nextLine.Append(time); 
nextLine.Append(' ', 100 - time.Length); 

अभी तक बेहतर गठबंधन दोनों एक भी आपरेशन में संलग्न कर देता है:

उत्तर

13

आप StringBuilder.Append(char,int) विधि है, जो निर्दिष्ट यूनिकोड वर्ण समय की एक निर्धारित संख्या को दोहराता उपयोग कर सकते हैं

nextLine.Append(time.PadRight(100)); 

यह होगा अपने time स्ट्रिंग को संलग्न करें, उसके बाद 100 - time.Length रिक्त स्थान।

संपादित: यदि आप केवल StringBuilder उपयोग कर रहे हैं गद्देदार समय के निर्माण के लिए है, तो आप दूर इसके साथ पूरी तरह कर सकते हैं:

string nextLine = time.PadRight(100); 
+0

एक इंटरमीडिएट स्ट्रिंग बनाना कुछ हद तक स्ट्रिंगबिल्डर का उद्देश्य है, नहीं? – dtb

+1

@ डीटीबी: मैं मान रहा था कि 'स्ट्रिंगबिल्डर' का उपयोग काफी हद तक स्ट्रिंग बनाने के लिए किया जा रहा है जो गद्देदार 'टाइम' है। यदि यह नहीं है, तो एक साधारण 'समय। पैडराइट (100)' पहले स्थान पर 'स्ट्रिंगबिल्डर' की आवश्यकता को रोक देगा। – Douglas

+0

हाँ मैं अधिक डेटा जोड़ने के लिए बाद में 'स्ट्रिंगबिल्डर' का उपयोग कर रहा हूं – javapowered

2

उपयोग PadLeft -

nextLine.Append(String.Empty.PadLeft(' ', 100 - time.Length)); 
संबंधित मुद्दे