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/03/10 11:23]
gthanos [Η Μέθοδος format]
java:formatting [2016/02/26 11:15] (current)
Line 1: Line 1:
 ====== Μορφοποίηση Εξόδου ====== ====== Μορφοποίηση Εξόδου ======
  
-Τα stream ​αντικείμενα που εφαρμόζουν μορφοποίηση είναι περιπτώσεις είτε //​PrintWriter// ​(κλάση stream χαρακτήρων),​ ή //​PrintStream// ​(κλάση byte stream).+**Σημείωση:​** ​Τα μόνα //​PrintStream// ​αντικείμενα που είναι πιθανό να χρειαστείτε είναι τα //​System.out//​ και //​System.err//​. Όταν χρειάζεται να δημιουργήσετε ένα διαμορφωμένο stream εξόδου, χρησιμοποιήστε //​PrintWriter//​και όχι ​//​PrintStream//​. ​
  
-**Σημείωση**:​ Τα μόνα //​PrintStream//​ αντικείμενα που είναι πιθανό να χρειαστείτε είναι τα //​System.out//​ και //​System.err//​. Όταν χρειάζεται να δημιουργήσετε ενα διαμορφωμένο stream εξόδου,​ χρησιμοποιήστε //​PrintWriter//,​ και όχι //​PrintStream//​.  +Όπως όλα τα αντικείμενα streams byte και χαρακτήρων,​ περιπτώσεις //​PrintStream//​ και //​PrintWriter//​ εφαρμόζουν ένα τυποποιημένο σύνολο μεθόδων εγγραφής για απλή έξοδο byte και χαρακτήρα. Επιπλέον,​ τόσο η //​PrintStream//​ όσο και η //​PrintWriter//​ εφαρμόζουν το ίδιο σύνολο μεθόδων για τη μετατροπή των εσωτερικών δεδομένων σε μορφοποιημένη έξοδο. Δύο δυνατότητες ​μορφοποίησης παρέχονται:​
- +
-Όπως όλα τα αντικείμενα streams byte και χαρακτήρων,​ περιπτώσεις //​PrintStream//​ και //​PrintWriter//​ εφαρμόζουν ένα τυποποιημένο σύνολο μεθόδων εγγραφής για απλή έξοδο byte και χαρακτήρα. Επιπλέον,​ τόσο η //​PrintStream//​ όσο και η //​PrintWriter//​ εφαρμόζουν το ίδιο σύνολο μεθόδων για τη μετατροπή των εσωτερικών δεδομένων σε μορφοποιημένη έξοδο. Δύο ​επίπεδα μορφοποίησης παρέχονται:​+
  
   * To //print// και //println// μορφοποιεί μεμονωμένες τιμές σε έναν τυποποιημένο τρόπο.   * To //print// και //println// μορφοποιεί μεμονωμένες τιμές σε έναν τυποποιημένο τρόπο.
-  * Το //format// μορφοποιεί σχεδόν οποιοδήποτε πλήθος τιμών βασισμένο σε ενα string μορφής, με πολλές επιλογές για την ακριβή μορφοποίηση.+  * Το //format// μορφοποιεί σχεδόν οποιοδήποτε πλήθος τιμών βασισμένο σε ένα string μορφοποίησης ανάλογο με αυτό της printf στην ​γλώσσα C.
  
 ==== Οι print και println Μέθοδοι ==== ==== Οι print και println Μέθοδοι ====
  
-Η κλήση των //print// ή //​println// ​εξάγει μια μοναδική ​τιμή ​αφού μετατρέψει την τιμή χρησιμοποιώντας την κατάλληλη μέθοδο ​//toString//. Μπορούμε να δούμε αυτό το παράδειγμα ​//Root//:+Η κλήση των //print// ή //​println// ​λαμβάνει ως όρισμα ένα String. Εάν υπάρχουν ορίσματα ​στις δύο ​αυτές μεθόδους που δεν είναι του τύπου String, ​τότε καλείται ​η μέθοδος ''​toString()'', ​προκειμένου ​να μετατραπούν τα ορίσματα σε String. Μπορείτε να δείτε το παρακάτω ​παράδειγμα:​
  
 <code java Root.java>​ <code java Root.java>​
Line 33: Line 31:
 </​code>​ </​code>​
  
-Αυτή είναι ​η έξοδος της Root:+Παρακάτω δίνεται το αποτέλεσμα της εκτέλεσης της κλάσης Root:
  
 <code java> <code java>
Line 39: Line 37:
 The square root of 5 is 2.23606797749979. The square root of 5 is 2.23606797749979.
 </​code>​ </​code>​
- 
-Οι μεταβλητές //i// και //r// διαμορφώθηκαν δύο φορές: την πρώτη φορά, χρησιμοποιώντας κώδικα σε μια υπερφόρτωση της print, τη δεύτερη φορά με κώδικα μετατροπής που δημιουργήθηκε αυτόματα από το μεταγλωττιστή της Java, ο οποίος επίσης χρησιμοποιεί την //​toString//​. Μπορείτε να διαμορφώσετε οποιαδήποτε τιμή με αυτόν τον τρόπο, αλλά εδώ δεν έχετε πολύ τον έλεγχο των αποτελεσμάτων. 
  
 ==== Η Μέθοδος format ==== ==== Η Μέθοδος format ====
  
-Η μέθοδος //format// μορφοποιεί πολλαπλά στοιχεία που βασίζονται σε ενα //string// μορφής. Το string ​μορφής αποτελείται από //static// κείμενο με ενσωματωμένα προσδιοριστικά μορφής. Εκτός των ​προσδιοριστικών ​μορφής, το string μορφής είναι αμετάβλητο της εξόδου. +Η μέθοδος //format// μορφοποιεί πολλαπλά στοιχεία που βασίζονται σε ενα //String// μορφοποίησης. Το String ​μορφoποίησης ​είναι ένα ​String ​που περιέχει προσδιοριστές μορφοποίησης. Το παράδειγμα //Root2// μορφοποιεί δύο τιμές με μία μόνο κλήση της //format//:
- +
-Τα //strings// μορφής υποστηρίζουν πολλές δυνατότητες. Εδώ, θα καλύψουμε μόνο κάποια βασικά. +
- +
-Το παράδειγμα //Root2// μορφοποιεί δύο τιμές με μία μόνο κλήση της //format//:+
  
 <code java Root2.java>​ <code java Root2.java>​
Line 61: Line 53:
 </​code>​ </​code>​
  
-Αυτή είναι η έξοδος:+έξοδος ​της κλάσης Root2 δίνεται παρακάτω
 <code java> <code java>
 The square root of 2 is 1.414214. The square root of 2 is 1.414214.
 </​code>​ </​code>​
  
-Όπως και τα τρία που χρησιμοποιούνται σε αυτό το παράδειγμα,​ όλα τα προσδιοριστικά ​μορφής αρχίζουν με ένα % και ​τελειώνουν ​με μια μετατροπή ​1ή 2χαρακτήρων που καθορίζει το είδος της μορφοποιημένης εξόδου που παράγεται. ​Οι τρεις μετατροπές που χρησιμοποιήθηκαν ​εδώ είναι:+Όλα οι προσδιοριστές μορφοποίησης αρχίζουν με τον χαρακτήρα '%' ​και ​ακολουθούν 1 ή 2 χαρακτήρες που καθορίζει το είδος της μορφοποιημένης εξόδου που παράγεται. ​Παρακάτω δίνονται μερικές από τις πιο συνήθεις μετατροπές:
  
-  * το d μορφοποιεί μια τιμή integer ως μια δεκαδική τιμή. +  * το %d μορφοποιεί μια τιμή integer ως μια δεκαδική τιμή. 
-  * το f μορφοποιεί μια floating point τιμή ως μια δεκαδική τιμή. +  * το %f μορφοποιεί μια floating point τιμή ως μια δεκαδική τιμή. 
-  * το n εξάγει έναν platform-specific ​τερματιστή γραμμής .+  * το %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>​
  
-  * το x μορφοποιεί έναν integer ως μια δεκαεξαδική τιμή. ​ 
-  * το s μορφοποιεί κάθε τιμή σε ένα string. 
-  * το tB μορφοποιεί έναν integer σε ένα locale-specific όνομα μήνα. 
  
 |Προηγούμενο:​ [[:​java:​character_streams | Streams Χαρακτήρων]]| Επόμενο:​ [[:​java:​class_path | Η κλάση Path ]] | |Προηγούμενο:​ [[:​java:​character_streams | Streams Χαρακτήρων]]| Επόμενο:​ [[:​java:​class_path | Η κλάση Path ]] |
  
  
java/formatting.1425986627.txt.gz · Last modified: 2016/02/26 11:15 (external edit)