java:formatting

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
java:formatting [2015/02/26 22:41]
elkarafe removed
java:formatting [2016/02/26 11:15] (current)
Line 1: Line 1:
-Τα stream αντικείμενα ​ που εφαρμόζουν ​formatting ​είναι περιπτώσεις είτε ​PrintWriter, μια κλάση ​stream ​χαρακτήρωνή PrintStream, ​μια κλάση ​byte stream ​.+====== Μορφοποίηση Εξόδου ====== 
 + 
 +**Σημείωση:​** ​Τα μόνα //​PrintStream//​ αντικείμενα που είναι πιθανό να χρειαστείτε είναι τα //​System.out//​ και //​System.err//​. Όταν χρειάζεται να δημιουργήσετε ένα διαμορφωμένο ​stream ​εξόδου,​ χρησιμοποιήστε //​PrintWriter//,​ και όχι //​PrintStream//​.  
 + 
 +Όπως όλα τα αντικείμενα ​streams byte και χαρακτήρων, ​περιπτώσεις //​PrintStream//​ και //​PrintWriter//​ εφαρμόζουν ένα τυποποιημένο σύνολο μεθόδων εγγραφής για απλή έξοδο byte και χαρακτήρα. Επιπλέον,​ τόσο η //​PrintStream//​ όσο και η //​PrintWriter// ​εφαρμόζουν ​το ίδιο σύνολο μεθόδων για τη μετατροπή των εσωτερικών δεδομένων σε μορφοποιημένη έξοδο. Δύο δυνατότητες μορφοποίησης παρέχονται
 + 
 +  * To //print// και //println// μορφοποιεί μεμονωμένες τιμές σε έναν τυποποιημένο τρόπο. 
 +  * Το //format// μορφοποιεί σχεδόν οποιοδήποτε πλήθος τιμών βασισμένο ​σε ένα string μορφοποίησης ανάλογο με αυτό της printf στην γλώσσα C. 
 + 
 +==== Οι print και println Μέθοδοι ==== 
 + 
 +Η κλήση των //print// ή //println// λαμβάνει ως όρισμα ένα String. Εάν υπάρχουν ορίσματα στις δύο αυτές μεθόδους που δεν ​είναι του τύπου String, τότε καλείται η μέθοδος ''​toString()''​προκειμένου να μετατραπούν τα ορίσματα σε String. Μπορείτε να δείτε το παρακάτω παράδειγμα: 
 + 
 +<code java Root.java>​ 
 +public class Root { 
 +    public static void main(String[] args) { 
 +        int i = 2; 
 +        double r = Math.sqrt(i);​ 
 +         
 +        System.out.print("​The square root of "); 
 +        System.out.print(i);​ 
 +        System.out.print("​ is "); 
 +        System.out.print(r);​ 
 +        System.out.println("​."​);​ 
 + 
 +        i = 5; 
 +        r = Math.sqrt(i);​ 
 +        System.out.println("​The square root of " + i + " is " + r + "​."​);​ 
 +    } 
 +
 +</​code>​ 
 + 
 +Παρακάτω δίνεται το αποτέλεσμα της εκτέλεσης της ​κλάσης Root: 
 + 
 +<code java> 
 +The square root of 2 is 1.4142135623730951. 
 +The square root of 5 is 2.23606797749979. 
 +</​code>​ 
 + 
 +==== Η Μέθοδος format ==== 
 + 
 +Η μέθοδος //format// μορφοποιεί πολλαπλά στοιχεία που βασίζονται σε ενα //String// μορφοποίησης. Το String μορφoποίησης είναι ένα String που περιέχει προσδιοριστές μορφοποίησης. Το παράδειγμα //Root2// μορφοποιεί δύο τιμές με μία μόνο κλήση της //​format//:​ 
 + 
 +<code java Root2.java>​ 
 +public class Root2 { 
 +    public static void main(String[] args) { 
 +        int i = 2; 
 +        double r = Math.sqrt(i);​ 
 +         
 +        System.out.format("​The square root of %d is %f.%n",​ i, r); 
 +    } 
 +
 +</​code>​ 
 + 
 +H έξοδος της κλάσης Root2 δίνεται παρακάτω 
 +<code java> 
 +The square root of 2 is 1.414214. 
 +</​code>​ 
 + 
 +Όλα οι προσδιοριστές μορφοποίησης αρχίζουν με τον ​χαρακτήρα '​%'​ και ακολουθούν 1 ή 2 χαρακτήρες που καθορίζει το είδος της μορφοποιημένης εξόδου που παράγεται. Παρακάτω δίνονται μερικές από τις πιο συνήθεις μετατροπές:​ 
 + 
 +  * το %d μορφοποιεί ​μια ​τιμή integer ως μια δεκαδική τιμή. 
 +  * το %f μορφοποιεί μια floating point τιμή ως μια δεκαδική τιμή. 
 +  * το %n εισάγει έναν platform-specific χαρακτήρα αλλαγής γραμμής. 
 +  * το %x μορφοποιεί έναν integer ως μια δεκαεξαδική τιμή.  
 +  * το %s μορφοποιεί ένα String. 
 + 
 +Οι σημαντικότεροι προσδιοριστές μορφοποίησης δίνονται παρακάτω: 
 +{{:​java:​format.png}} 
 + 
 +Παρακάτω δίνεται δύο παραδείγματα χρήσης των σημαντικότερων προσδιοριστών μορφοποίησης που παρουσιάστηκαν παραπάνω. 
 + 
 +<code java MyFormat.java>​ 
 +public class MyFormat { 
 +    public static void main(String[] args) { 
 +        System.out.format("​%f,​ %1$+020.10f %n", Math.PI); 
 +    } 
 +
 +</​code>​ 
 + 
 +<code java TestFormat.java>​ 
 +import java.util.Calendar;​ 
 +import java.util.Locale;​ 
 + 
 +public class TestFormat { 
 +     
 +    public static void main(String[] args) { 
 +      long n = 461012; 
 +      System.out.format("​%d%n",​ n);      //  --> ​ "​461012"​ 
 +      System.out.format("​%08d%n",​ n);    //  --> ​ "​00461012"​ 
 +      System.out.format("​%+8d%n",​ n);    //  --> ​ " +461012"​ 
 +      System.out.format("​%,​8d%n",​ n);    // --> ​ " 461,​012"​ 
 +      System.out.format("​%+,​8d%n%n",​ n); //  --> ​ "​+461,​012"​ 
 +       
 +      double pi = Math.PI; 
 + 
 +      System.out.format("​%f%n",​ pi);       // --> ​ "​3.141593"​ 
 +      System.out.format("​%.3f%n",​ pi);     // --> ​ "​3.142"​ 
 +      System.out.format("​%10.3f%n",​ pi);   // --> ​ " ​    ​3.142"​ 
 +      System.out.format("​%-10.3f%n",​ pi);  // --> ​ "​3.142"​ 
 +      System.out.format(Locale.FRANCE,​ 
 +                        "​%-10.4f%n%n",​ pi); // --> ​ "​3,​1416"​ 
 + 
 +      Calendar c = Calendar.getInstance();​ 
 +      System.out.format("​%tB %te, %tY%n",​ c, c, c); // --> ​ "May 29, 2006"​ 
 + 
 +      System.out.format("​%tl:​%tM %tp%n",​ c, c, c);  // --> ​ "2:34 am" 
 + 
 +      System.out.format("​%tD%n",​ c);    // --> ​ "​05/​29/​06"​ 
 +    } 
 +
 +</​code>​ 
 + 
 + 
 +|Προηγούμενο:​ [[:​java:​character_streams | Streams Χαρακτήρων]]| Επόμενο:​ [[:​java:​class_path | Η κλάση Path ]] | 
  
-Σημείωση:​ Τα μόνα PrintStream αντικείμενα που είναι πιθανό να χρειαστείτε είναι τα System.out και System.err. ​ Όταν χρειάζεται να δημιουργήσετε ενα διαμορφωμένο stream εξόδου,​ χρεισημοποιήστε PrintWriter,​ οχι PrintStream. 
java/formatting.1424990517.txt.gz · Last modified: 2016/02/26 11:15 (external edit)