2011-05-30 9 views
5

मैं जानता हूँ कि मैं का उपयोग कर रिक्त स्थान के साथ भर सकते हैं:0 के फ़ॉर्मेटर उपयोग करने के साथ तार भरें

String.format("%6s", "abc"); // ___abc (three spaces before abc 

लेकिन मैं उत्पादन करने के लिए कैसे पता लगाने के लिए प्रतीत नहीं कर सकते हैं:

000abc 

संपादित करें:

मैंने यह पूछने से पहले %06s की कोशिश की। अधिक (अनचाहे) उत्तरों से पहले आपको बताएंगे।

वर्तमान में मेरे पास है: String.format("%6s", data).replace(' ', '0') लेकिन मुझे लगता है कि एक बेहतर तरीका मौजूद होना चाहिए।

+2

बीटीडब्ल्यू, मैंने यह पूछने से पहले '% 06s' का उपयोग किया था, बस आपको अधिक बताए जाने से पहले बताए गए (अनचाहे) उत्तरों दिखाई देते हैं। – OscarRyz

उत्तर

-1

I think this is what you're looking for.

String.format("%06s", "abc"); 
+3

-1 यह संख्याओं के लिए है, स्ट्रिंग के लिए नहीं। – MByD

+0

इस बारे में कैसे? http://stackoverflow.com/questions/388461/padding-strings-in-java/388482#388482 –

5

आप वास्तव में के रूप में अपने कोड और अधिक पठनीय मिल जाएगा इस तरह स्ट्रिंग हेरफेर कार्यों के लिए अपाचे कॉमन्स लैंग से StringUtils उपयोग करने पर विचार करना चाहिए। आपका उदाहरण StringUtils.leftPad("abc", 6, ' ');

0

त्वरित और गंदे ("000 .... 00" स्ट्रिंग की लंबाई सेट के रूप में अधिक से अधिक लेन समर्थन) होगा:

public static String lefTpadWithZeros(String x,int minlen) { 
    return x.length()<minlen ? 
     "000000000000000".substring(0,minlen-x.length()) + x : x;  
} 
1

अपनी खुद की स्थिर-उपयोगिता विधि रोलिंग का प्रयास करें

public static String leftPadStringWithChar(String s, int fixedLength, char c){ 

    if(fixedLength < s.length()){ 
     throw new IllegalArgumentException(); 
    } 

    StringBuilder sb = new StringBuilder(s); 

    for(int i = 0; i < fixedLength - s.length(); i++){ 
     sb.insert(0, c); 
    } 

    return sb.toString(); 
} 

और फिर इसका इस्तेमाल, इस तरह के

System.out.println(leftPadStringWithChar("abc", 6, '0')); 

outpu के रूप में टी

000abc 
1

हर तरह से, सामान के इस प्रकार के लिए आप की तरह एक पुस्तकालय खोजने के लिए और जानने के क्या आपके चमकदार नया पिटारे में है, इसलिए आप कम पहियों (है कि कभी कभी फ्लैट है) एक नए अंदाज़ में। मैं अपाचे कॉमन्स को Guava पसंद करता हूं। इस मामले में वे समकक्ष हैं:

Strings.padStart("abc",6,'0'); 
संबंधित मुद्दे