This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
java:formatting [2015/03/10 11:23] gthanos [Η Μέθοδος format] |
java:formatting [2015/03/10 13:12] gthanos [Η Μέθοδος format] |
||
---|---|---|---|
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 που περιέχει και προσδιοριστές μορφοποίησης. Ε |
- | Τα //strings// μορφής υποστηρίζουν πολλές δυνατότητες. Εδώ, θα καλύψουμε μόνο κάποια βασικά. | + | Τα //strings// μορφοποίησης υποστηρίζουν πολλές δυνατότητες. Εδώ, θα καλύψουμε μόνο κάποια βασικά. |
Το παράδειγμα //Root2// μορφοποιεί δύο τιμές με μία μόνο κλήση της //format//: | Το παράδειγμα //Root2// μορφοποιεί δύο τιμές με μία μόνο κλήση της //format//: | ||
Line 61: | Line 57: | ||
</code> | </code> | ||
- | Αυτή είναι η έξοδος: | + | H έξοδος της κλάσης 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 ως μια δεκαδική τιμή. | ||
+ | * το %f μορφοποιεί μια floating point τιμή ως μια δεκαδική τιμή. | ||
+ | * το %n εισάγει έναν platform-specific χαρακτήρα αλλαγής γραμμής. | ||
+ | * το %x μορφοποιεί έναν integer ως μια δεκαεξαδική τιμή. | ||
+ | * το %s μορφοποιεί ένα String. | ||
- | * το d μορφοποιεί μια τιμή integer ως μια δεκαδική τιμή. | + | Το σύνολο των προσδιοριστών μορφοποίησης δίνεται παρακάτω: |
- | * το f μορφοποιεί μια floating point τιμή ως μια δεκαδική τιμή. | + | {{:java:format.png}} |
- | * το n εξάγει έναν platform-specific τερματιστή γραμμής . | + | |
- | Εδώ είναι κάποιες άλλες μετατροπές: | ||
- | * το x μορφοποιεί έναν integer ως μια δεκαεξαδική τιμή. | ||
- | * το s μορφοποιεί κάθε τιμή σε ένα string. | ||
- | * το tB μορφοποιεί έναν integer σε ένα locale-specific όνομα μήνα. | ||
|Προηγούμενο: [[:java:character_streams | Streams Χαρακτήρων]]| Επόμενο: [[:java:class_path | Η κλάση Path ]] | | |Προηγούμενο: [[:java:character_streams | Streams Χαρακτήρων]]| Επόμενο: [[:java:class_path | Η κλάση Path ]] | | ||