This is an old revision of the document!
Οι κλάσεις 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 σε αναλογία με τη συνάρτηση printf στη γλώσσα C. Το ακόλουθο παράδειγμα SquareRoot μορφοποιεί δύο τιμές με μία μόνο κλήση της format:
public class SquareRoot { 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 έξοδος της κλάσης SquareRoot είναι: The square root of 2 is 1.414214.
Όλοι οι προσδιοριστές μορφοποίησης αρχίζουν με τον χαρακτήρα '%' και ακολουθούν 1 ή 2 χαρακτήρες που καθορίζουν το είδος της μορφοποιημένης εξόδου που παράγεται. Παρακάτω δίνονται μερικές από τις πιο συνήθεις μετατροπές:
Οι σημαντικότεροι προσδιοριστές μορφοποίησης δίνονται παρακάτω:
Ακολουθούν δύο παραδείγματα χρήσης των σημαντικότερων προσδιοριστών μορφοποίησης που παρουσιάστηκαν προηγούμενα.
public class MyFormat { public static void main(String[] args) { System.out.format("%f, 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" } }
| Προηγούμενο: Η κλάση Scanner | Περιεχόμενα | Επόμενο: Object Serialization/Deserialization |