2012-12-09 17 views
5

में परिवर्तनीय चौड़ाई मैं एक ऐसे प्रोजेक्ट पर काम कर रहा हूं जिसमें मुझे टेक्स्ट पेड़ प्रदर्शित करने की आवश्यकता है। मैं स्वरूपण प्रक्रिया को सरल बनाने के लिए जावा की स्ट्रिंग.फॉर्मैट विधि का उपयोग करने की कोशिश कर रहा हूं, लेकिन परिवर्तनीय चौड़ाई लागू करने का प्रयास करते समय मैं परेशानी में भाग गया।जावा की स्ट्रिंग.फॉर्मैट विधि

वर्तमान में मेरे पास एक चर (एक int) है जिसे गहराई कहा जाता है।

मैं निम्नलिखित करने की कोशिश:

String.format("%"+depth+"s"," ") + getOriginalText() + "\n"; 

हालांकि मैं निम्नलिखित त्रुटि मिलती है।

java.util.FormatFlagsConversionMismatchException: Conversion = s, Flags = 0 

यह कैसे करें इसे करने के बारे में कोई सुझाव, या क्या मुझे बस लूप के लिए व्यवस्थित करना चाहिए?

सहायता के लिए धन्यवाद!

+0

क्या आप वास्तव में यह पूछ रहे हैं? http://stackoverflow.com/questions/388461/how-can-i-pad-a-string-in-java – billjamesdev

+0

क्या आप पूरा कोड पोस्ट कर सकते हैं, मैं समझने की कोशिश कर रहा हूं कि आप क्या कर रहे हैं। – ElderMael

+0

मैंने यह भी सोचा क्योंकि मुझे पता था कि सी/सी ++ में '*' संशोधक था: 'चौड़ाई प्रारूप स्ट्रिंग में निर्दिष्ट नहीं है, लेकिन तर्क के पहले एक अतिरिक्त पूर्णांक मान तर्क के रूप में स्वरूपित किया जाना चाहिए।' यानी मैं 'String.format ("% * i ", pad_width, संख्या) जैसे कुछ की खोज कर रहा था। लेकिन दिया गया जवाब भी समझ में आता है। – mxmlnkn

उत्तर

4

यह काम करता है:

int depth = 5; 
String str= "Hello"+ String.format("%"+depth+"s"," ") + "world" + "\n"; 
System.out.println(str); 

यह प्रिंट 5 समय में के बीच रिक्त स्थान।

हैलो           दुनिया।

आप कोड की जाँच करें और सुनिश्चित करें कि depth एक वैध int मूल्य के साथ असाइन किया गया है कर लें। सबसे अधिक संभावना है कि (depth में अमान्य मान) समस्या है।

+0

यह समझ में आता है। मुझे लगता है कि मुझे लगता है कि मैं एक बड़े पैमाने पर चूक गया था। मैं भूल गया कि मैं पहली कॉल के लिए गहराई के लिए शून्य पास करता हूं, और "% 0s" एक त्रुटि है। –

+0

@PhillipHuff: जानना अच्छा है। यदि आपको लगता है, यह सहायक है तो जवाब स्वीकार करना न भूलें। –

संबंधित मुद्दे