Η μέθοδος Java String format () επιστρέφει μια μορφοποιημένη συμβολοσειρά με βάση το όρισμα που πέρασε.
Η σύνταξη της format()
μεθόδου String είναι:
String.format(String format, Object… args)
Εδώ,
format()
είναι μια στατική μέθοδος. Καλούμε τηformat()
μέθοδο χρησιμοποιώντας το όνομα της τάξηςString
.…
στον παραπάνω κωδικό σημαίνει ότι μπορείτε να περάσετε περισσότερα από ένα αντικείμεναformat()
.
μορφή () Παράμετροι
Η format()
μέθοδος παίρνει δύο παραμέτρους.
- μορφή - μια συμβολοσειρά μορφής
- args - 0 ή περισσότερα επιχειρήματα
μορφή () Επιστροφή τιμής
- επιστρέφει μια μορφοποιημένη συμβολοσειρά
Παράδειγμα 1: Μορφή συμβολοσειράς Java ()
class Main ( public static void main(String() args) ( String language = "Java"; int number = 30; String result; // format object as a string result = String.format("Language: %s", language); System.out.println(result); // Language: Java // format number as a hexadecimal number result = String.format("Hexadecimal Number: %x", number); // 1e System.out.println(result); // Hexadecimal Number: 1e ) )
Στο παραπάνω πρόγραμμα, παρατηρήστε τον κωδικό
result = String.format("Language: %s", language);
Εδώ, "Language: %s"
είναι μια συμβολοσειρά μορφής .
%s
στη μορφή συμβολοσειρά αντικαθίσταται με το περιεχόμενο της γλώσσας. %s
είναι ένας προσδιοριστής μορφής.
Ομοίως, %x
αντικαθίσταται με τη δεκαεξαδική τιμή του αριθμού σε String.format("Number: %x", number)
.
Προσδιοριστές μορφής
Ακολουθούν οι συνήθεις προσδιοριστές μορφής:
Προσδιοριστής | Περιγραφή |
---|---|
%b , %B | "true" ή "false" με βάση το επιχείρημα |
%s , %S | μια χορδή |
%c , %C | έναν χαρακτήρα Unicode |
%d | δεκαδικός ακέραιος (χρησιμοποιείται μόνο για ακέραιους αριθμούς) |
%o | οκταδικός ακέραιος (χρησιμοποιείται μόνο για ακέραιους αριθμούς) |
%x , %X | έναν δεκαεξαδικό ακέραιο (χρησιμοποιείται μόνο για ακέραιους αριθμούς) |
%e , %E | για επιστημονική σημειογραφία (χρησιμοποιείται για αριθμούς κινητής υποδιαστολής) |
%f | για δεκαδικά ψηφία (χρησιμοποιείται για αριθμούς κινητής υποδιαστολής) |
Παράδειγμα 2: Διαμόρφωση συμβολοσειρών αριθμών
class Main ( public static void main(String() args) ( int n1 = 47; float n2 = 35.864f; double n3 = 44534345.76d; // format as an octal number System.out.println(String.format("n1 in octal: %o", n1)); // 57 // format as hexadecimal numbers System.out.println(String.format("n1 in hexadecimal: %x", n1)); // 2f System.out.println(String.format("n1 in hexadecimal: %X", n1)); // 2F // format as strings System.out.println(String.format("n1 as string: %s", n1)); // 47 System.out.println(String.format("n2 as string: %s", n2)); // 35.864 // format in scientific notation System.out.println(String.format("n3 in scientific notation: %g", n3)); // 4.45343e+07 ) )
Παραγωγή
n1 σε οκταδικό: 57 n1 σε δεκαεξαδικό: 2f n1 σε δεκαεξαδικό: 2F n1 ως συμβολοσειρά: 47 n2 ως συμβολοσειρά: 35,864 n3 σε επιστημονική σημειογραφία: 4.45343e + 07
Μπορείτε να χρησιμοποιήσετε περισσότερους από έναν προσδιοριστές μορφής στη συμβολοσειρά μορφής.
Παράδειγμα 3: Χρήση περισσότερων από ενός προσδιοριστών μορφής
// using more than one format specifiers // in a format string class Main ( public static void main(String() args) ( int n1 = 47; String text = "Result"; System.out.println(String.format("%shexadecimal: %x", text, n1)); ) )
Παραγωγή
Αποτέλεσμα δεκαεξαδικό: 2f
Εδώ, %s
αντικαθίσταται με την τιμή του κειμένου. Ομοίως, %o
αντικαθίσταται με τη δεκαεξαδική τιμή του n1.

Παράδειγμα 4: Μορφοποίηση δεκαδικών αριθμών
class Main ( public static void main(String() args) ( float n1 = -452.534f; double n2 = -345.766d; // format floating-point as it is System.out.println(String.format("n1 = %f", n1)); // -452.533997 System.out.println(String.format("n2 = %f", n2)); // -345.766000 // show up to two decimal places System.out.println(String.format("n1 = %.2f", n1)); // -452.53 System.out.println(String.format("n2 = %.2f", n2)); // -345.77 ) )
Παραγωγή
n1 = -452.533997 n2 = -345.766000 n1 = -452.53 n2 = -345.77
Σημείωση: Όταν μορφοποιούμε -452.534 χρησιμοποιώντας %f
, λαμβάνουμε -452.533997 . Δεν είναι λόγω της format()
μεθόδου. Η Java δεν επιστρέφει την ακριβή αναπαράσταση των αριθμών κινητής υποδιαστολής.
Όταν %.2f
χρησιμοποιείται προσδιοριστής μορφής, format()
δίνει δύο αριθμούς μετά το δεκαδικό σημείο.
Παράδειγμα 5: Αριθμοί γεμίσματος με Spaces και 0
// using more than one format specifiers // in a format string class Main ( public static void main(String() args) ( int n1 = 46, n2 = -46; String result; // padding number with spaces // the length of the string will be 5 result = String.format("|%5d|", n1); // | 46| System.out.println(result); // padding number with numbers 0 // the length of the string will be 5 result = String.format("|%05d|", n1); // |00046| System.out.println(result); // using signs before numbers result = String.format("%+d", n1); // +46 System.out.println(result); result = String.format("%+d", n2); // -46 System.out.println(result); // enclose negative number within parenthesis // and removing the sign result = String.format("%(d", n2); // (46) System.out.println(result); ) )
Παράδειγμα 6: Χρήση 0x και 0 πριν από τα δεκαεξαδικά και Οκτάλ
// using 0x before hexadecimal // using 0 before octal class Main ( public static void main(String() args) ( int n = 46; System.out.println(String.format("%#o", n)); // 056 System.out.println(String.format("%#x", n)); // 0x2e ) )
Μορφή Java String () με Locale
Η format()
μέθοδος String έχει επίσης μια άλλη σύνταξη εάν πρέπει να εργαστείτε με τις καθορισμένες τοπικές ρυθμίσεις.
String.format(Locale l, String format, Object… args)
Παράδειγμα 7: Χρήση του GERMAN Locale σε μορφή ()
// to use Locale import java.util.Locale; class Main ( public static void main(String() args) ( int number = 8652145; String result; // using the current locale result = String.format("Number: %,d", number); System.out.println(result); // using the GERMAN locale as the first argument result = String.format(Locale.GERMAN, "Number in German: %,d", number); System.out.println(result); ) )
Παραγωγή
Αριθμός: 8.652.145 Αριθμός στα γερμανικά: 8.652.145
Σημείωση: Στη Γερμανία, οι ακέραιοι διαχωρίζονται με .
αντί για ,
.