2011-02-04 10 views
34

मैं जावा में स्ट्रिंग.फॉर्मैट() का उपयोग कर रहा हूं। सी में उपलब्ध printf() नियंत्रण चैनल का अनुकरण करने की कोशिश कर रहा हूं। मैं समझता हूं कि एक स्ट्रिंग को उस क्षेत्र में रखा जाना चाहिए जिसमें 20 अक्षर, 5, 2 लगते हैं .. 3 दशमलव के साथ, 2, आदि। हालांकि, तारों को उनके क्षेत्र में दाएं गठबंधन मुद्रित किया जाता है।मैं String.format() का उपयोग कर तारों को कैसे बाधित कर सकता हूं?

मैं तारों को कैसे बाधित कर सकता हूं?

यहां एक संभावित आउटपुट का एक उदाहरण दिया गया है जिसे मैं अपने क्षेत्रों में बाएं-संरेखित EXECUTING और CREATED में संशोधित करना चाहता हूं।

Process PID: 25 Status: -----------  EXECUTING 
Process PID: 36 Status: READY-SUSPENDED 
Process PID: 4 Status: ----------------  CREATED 

* ध्यान दें: पर विचार '-' एक खाली जगह के रूप में

उत्तर

73

printf के साथ उसी तरह - प्रारूप

+22

("% - 10s "," परीक्षण ")' –

+0

और आप स्थिति विनिर्देशक, 'String.Format (" उपयोग कर रहे हैं % 1 $ -10s "," परीक्षण ")' – jff

3
इस तरह

में एक - संशोधक का उपयोग?

class F { 
    public static void main(String ... args) { 
    String [] status = { "EXECUTING", "READY-SUSPENDED", "CREATED" }; 
    int [] pids = {123, 34, 1231 }; 
    int i = 0; 
    for(String s : status) { 
     System.out.printf("Process PID: %5d Status : %s%n", pids[i++], s); 
    } 
    } 
} 

आउटपुट:

$java F 
Process PID: 123 Status : EXECUTING 
Process PID: 34 Status : READY-SUSPENDED 
Process PID: 1231 Status : CREATED 
`String.Format में के रूप में
+5

हालांकि, यह उचित नहीं छोड़ा गया है। इसके लिए '-' के उपयोग की आवश्यकता है। – AHungerArtist

+0

System.out.printf ("प्रक्रिया पीआईडी:% 5 डी स्थिति:% s \ n", पिड्स [i ++], एस); –

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

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