| Both sides previous revision
Previous revision
Next revision
|
Previous revision
Next revision
Both sides next revision
|
java:formatting [2017/02/07 08:06] gthanos [Οι print και println Μέθοδοι] |
java:formatting [2020/03/09 21:22] gthanos [Μορφοποίηση Εξόδου] |
| ====== Μορφοποίηση Εξόδου ====== | ====== Μορφοποίηση Εξόδου ====== |
| |
| **Σημείωση:** Τα μόνα //PrintStream// αντικείμενα που είναι πιθανό να χρειαστείτε είναι τα //System.out// και //System.err//. Όταν χρειάζεται να δημιουργήσετε ένα διαμορφωμένο stream εξόδου, χρησιμοποιήστε //PrintWriter//, και όχι //PrintStream//. | Οι κλάσεις [[http://docs.oracle.com/javase/7/docs/api/java/io/PrintStream.html|PrintStream]] και [[http://docs.oracle.com/javase/7/docs/api/java/io/PrintWriter.html|PrintWriter]] υλοποιούν ένα κοινό σύνολο μεθόδων για εγγραφή χαρακτήρων. Παρέχονται οι παρακάτω δύο δυνατότητες μορφοποίησης: |
| | |
| Οι κλάσεις [[http://docs.oracle.com/javase/7/docs/api/java/io/PrintStream.html|PrintStream]] και [[http://docs.oracle.com/javase/7/docs/api/java/io/PrintWriter.html|PrintWriter]] υλοποιούν ένα κοινό σύνολο μεθόδων για εγγραφή χαρακτήρων. Δύο βασικές δυνατότητες μορφοποίησης παρέχονται: | |
| |
| - Οι μέθοδοι //print// και //println// οι οποίες δέχονται μόνο ένα όρισμα είτε βασικού τύπου (int, long, double, byte etc), είτε αναφορικού τύπου ([[http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html|Object]] ή [[http://docs.oracle.com/javase/7/docs/api/java/lang/String.html|String]]) | - Οι μέθοδοι //print// και //println// οι οποίες δέχονται μόνο ένα όρισμα είτε βασικού τύπου (int, long, double, byte etc), είτε αναφορικού τύπου ([[http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html|Object]] ή [[http://docs.oracle.com/javase/7/docs/api/java/lang/String.html|String]]) |
| |
| Η κλήση των //print// ή //println// απαιτεί την εκτύπωση ενός αλφαριθμητικού. Εάν το όρισμα που λαμβάνουν οι μέθοδοι αυτές δεν είναι αλφαριθμητικό τότε | Η κλήση των //print// ή //println// απαιτεί την εκτύπωση ενός αλφαριθμητικού. Εάν το όρισμα που λαμβάνουν οι μέθοδοι αυτές δεν είναι αλφαριθμητικό τότε |
| * για αναφορικούς τύπους που δεν είναι Striung καλείται η μέθοδος ''toString()'', προκειμένου να μετατραπούν τα ορίσματα σε String. | * για αναφορικούς τύπους που δεν είναι String καλείται η μέθοδος ''toString()'', προκειμένου να μετατραπούν τα ορίσματα σε String. |
| * για βασικούς τύπους, αυτοί μετατρέπονται πρώτα σε αναφορικούς (int --> [[http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html|Integer]], long --> [[http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html|Long]]) και στη συνέχεια καλείται η μέθοδος ''toString'' για αυτούς. | * για βασικούς τύπους, αυτοί μετατρέπονται πρώτα σε αναφορικούς (int --> [[http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html|Integer]], long --> [[http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html|Long]]) και στη συνέχεια καλείται η μέθοδος ''toString'' για αυτούς. |
| | |
| | <WRAP tip 80% center round> |
| | Η διαφορά μεταξύ των μεθόδων //print// και //println// είναι ότι η δεύτερη εκτυπώνει στο τέλος και ένα χαρακτήρα αλλαγής γραμμής. |
| | </WRAP> |
| |
| Μπορείτε να δείτε το παρακάτω παράδειγμα: | Μπορείτε να δείτε το παρακάτω παράδειγμα: |
| </code> | </code> |
| |
| ==== Η Μέθοδος format ==== | ==== Η μέθοδος format ή printf ==== |
| |
| Η μέθοδος //format// μορφοποιεί πολλαπλά στοιχεία που βασίζονται σε ενα //String// μορφοποίησης. Το String μορφoποίησης είναι ένα String που περιέχει προσδιοριστές μορφοποίησης. Το παράδειγμα //Root2// μορφοποιεί δύο τιμές με μία μόνο κλήση της //format//: | Η μέθοδος //format// μορφοποιεί ένα string σε αναλογία με τη συνάρτηση [[http://www.cplusplus.com/reference/cstdio/printf/|printf]] στη γλώσσα C. Το ακόλουθο παράδειγμα //SquareRoot// μορφοποιεί δύο τιμές με μία μόνο κλήση της //format//: |
| |
| <code java Root2.java> | <code java SquareRoot.java> |
| public class Root2 { | public class SquareRoot { |
| public static void main(String[] args) { | public static void main(String[] args) { |
| int i = 2; | int i = 2; |
| </code> | </code> |
| |
| H έξοδος της κλάσης Root2 δίνεται παρακάτω | H έξοδος της κλάσης SquareRoot είναι: ''The square root of 2 is 1.414214.'' |
| <code java> | |
| The square root of 2 is 1.414214. | |
| </code> | |
| |
| Όλα οι προσδιοριστές μορφοποίησης αρχίζουν με τον χαρακτήρα '%' και ακολουθούν 1 ή 2 χαρακτήρες που καθορίζει το είδος της μορφοποιημένης εξόδου που παράγεται. Παρακάτω δίνονται μερικές από τις πιο συνήθεις μετατροπές: | Όλοι οι προσδιοριστές μορφοποίησης αρχίζουν με τον χαρακτήρα '%' και ακολουθούν 1 ή 2 χαρακτήρες που καθορίζουν το είδος της μορφοποιημένης εξόδου που παράγεται. Παρακάτω δίνονται μερικές από τις πιο συνήθεις μετατροπές: |
| |
| * το %d μορφοποιεί μια τιμή integer ως μια δεκαδική τιμή. | * το %d μορφοποιεί μια τιμή integer ως μια δεκαδική τιμή. |
| {{:java:format.png}} | {{:java:format.png}} |
| |
| Παρακάτω δίνεται δύο παραδείγματα χρήσης των σημαντικότερων προσδιοριστών μορφοποίησης που παρουσιάστηκαν παραπάνω. | Ακολουθούν δύο παραδείγματα χρήσης των σημαντικότερων προσδιοριστών μορφοποίησης που παρουσιάστηκαν προηγούμενα. |
| |
| <code java MyFormat.java> | <code java MyFormat.java> |
| |
| |
| |Προηγούμενο: [[:java:character_streams | Streams Χαρακτήρων]] | [[:toc | Περιεχόμενα ]] | Επόμενο: [[:java:class_path | Η κλάση Path ]] | | |Προηγούμενο: [[:java:util_scanner_class | Η κλάση Scanner]] | [[:toc | Περιεχόμενα ]] | Επόμενο: [[:java:object_serialization | Object Serialization/Deserialization ]] | |
| |
| |