This is an old revision of the document!
Σημείωση: Τα μόνα PrintStream αντικείμενα που είναι πιθανό να χρειαστείτε είναι τα System.out και System.err. Όταν χρειάζεται να δημιουργήσετε ένα διαμορφωμένο stream εξόδου, χρησιμοποιήστε PrintWriter, και όχι PrintStream.
Οι κλάσεις PrintStream και PrintWriter υλοποιούν ένα κοινό σύνολο μεθόδων για εγγραφή χαρακτήρων. Δύο βασικές δυνατότητες μορφοποίησης παρέχονται:
Η κλήση των print ή println απαιτεί την εκτύπωση ενός αλφαριθμητικού. Εάν το όρισμα που λαμβάνουν οι μέθοδοι αυτές δεν είναι αλφαριθμητικό τότε
toString(), προκειμένου να μετατραπούν τα ορίσματα σε String. Η διαφορά μεταξύ των μεθόδων print και println είναι ότι η δεύτερη εκτυπώνει στο τέλος και ένα χαρακτήρα αλλαγής γραμμής.
Μπορείτε να δείτε το παρακάτω παράδειγμα:
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 + "."); } }
Παρακάτω δίνεται το αποτέλεσμα της εκτέλεσης της κλάσης Root:
The square root of 2 is 1.4142135623730951. The square root of 5 is 2.23606797749979.
Η μέθοδος format μορφοποιεί πολλαπλά στοιχεία που βασίζονται σε ενα String μορφοποίησης (περιέχει προσδιοριστές μορφοποίησης). Το παράδειγμα Root2 μορφοποιεί δύο τιμές με μία μόνο κλήση της format:
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); } }
H έξοδος της κλάσης Root2 δίνεται παρακάτω
The square root of 2 is 1.414214.
Όλοι οι προσδιοριστές μορφοποίησης αρχίζουν με τον χαρακτήρα '%' και ακολουθούν 1 ή 2 χαρακτήρες που καθορίζουν το είδος της μορφοποιημένης εξόδου που παράγεται. Παρακάτω δίνονται μερικές από τις πιο συνήθεις μετατροπές:
Οι σημαντικότεροι προσδιοριστές μορφοποίησης δίνονται παρακάτω:
Παρακάτω δίνονται δύο παραδείγματα χρήσης των σημαντικότερων προσδιοριστών μορφοποίησης που παρουσιάστηκαν παραπάνω.
public class MyFormat { public static void main(String[] args) { System.out.format("%f, %1$+020.10f %n", Math.PI); } }
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" } }
| Προηγούμενο: Streams Χαρακτήρων | Περιεχόμενα | Επόμενο: Η κλάση Path |