This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
java:formatting [2015/03/10 12:44] gthanos [Μορφοποίηση Εξόδου] |
java:formatting [2021/05/14 16:09] gthanos [Εγγραφή σε αρχεία κείμενου] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== | + | ====== |
| - | **Σημείωση:** Τα μόνα // | + | Η εγγραφή αρχείων κειμένου |
| - | Όπως όλα τα αντικείμενα streams byte και χαρακτήρων, περιπτώσεις // | + | Στο |
| - | | + | <code java ReadWithScannerAndWriteCSV.java> |
| - | | + | import java.util.*; |
| + | import java.io.*; | ||
| + | |||
| + | public class ReadWithScannerAndWriteCSV { | ||
| + | |||
| + | |||
| + | public static void main(String []args) { | ||
| + | |||
| + | TelephoneNumber[] numbers; | ||
| + | numbers = readTelephoneNumbers(" | ||
| + | printTelephoneNumbers(numbers); | ||
| + | writeTelephoneNumbers2CSVfile(numbers, | ||
| + | } | ||
| + | |||
| + | public static void printTelephoneNumbers(TelephoneNumber[] numbers) { | ||
| + | for(TelephoneNumber number : numbers) { | ||
| + | System.out.println(number); | ||
| + | } | ||
| + | } | ||
| + | |||
| + | public static TelephoneNumber[] readTelephoneNumbers(String filename) { | ||
| + | String firstname, lastname; | ||
| + | |||
| + | long number; | ||
| + | int i=0; | ||
| + | TelephoneNumber numbers[] = new TelephoneNumber[5]; | ||
| + | try(Scanner sc = new Scanner(new File(filename))) { | ||
| + | |||
| + | while( sc.hasNext() ) { | ||
| + | firstname = sc.next(); | ||
| + | lastname = sc.next(); | ||
| + | number = sc.nextLong(); | ||
| + | |||
| + | numbers[i++] = new TelephoneNumber(firstname+" | ||
| + | } | ||
| + | |||
| + | } catch(InputMismatchException ex) { | ||
| + | System.out.println(" | ||
| + | } catch(FileNotFoundException ex) { | ||
| + | System.out.println(" | ||
| + | } | ||
| + | |||
| + | return numbers; | ||
| + | } | ||
| + | |||
| + | public static void writeTelephoneNumbers2CSVfile(TelephoneNumber[] numbers, String filename) { | ||
| + | |||
| + | try(PrintWriter writer = new PrintWriter(filename)) { | ||
| + | for(TelephoneNumber number : numbers) { | ||
| + | writer.format(" | ||
| + | } | ||
| + | } | ||
| + | catch(FileNotFoundException ex) { | ||
| + | System.out.format(" | ||
| + | } | ||
| + | |||
| + | } | ||
| + | } | ||
| + | </code> | ||
| + | |||
| + | Η κλάση [[https://docs.oracle.com/javase/ | ||
| + | |||
| + | ===== Μορφοποίηση Εξόδου ===== | ||
| + | |||
| + | Οι κλάσεις [[http:// | ||
| + | |||
| + | | ||
| + | - Η μέθοδος //format// μορφοποιεί με βάση ένα | ||
| ==== Οι print και println Μέθοδοι ==== | ==== Οι print και println Μέθοδοι ==== | ||
| - | Η κλήση των //print// ή //println// εξάγει μια μοναδική τιμή αφού | + | Η κλήση των //print// ή // |
| + | * για αναφορικούς τύπους που δεν είναι String καλείται η μέθοδος '' | ||
| + | * για βασικούς τύπους, αυτοί μετατρέπονται πρώτα | ||
| + | |||
| + | <WRAP tip 80% center round> | ||
| + | Η διαφορά μεταξύ των | ||
| + | </ | ||
| + | |||
| + | Μπορείτε να δείτε το παρακάτω | ||
| <code java Root.java> | <code java Root.java> | ||
| public class Root { | public class Root { | ||
| - | | + | |
| - | int i = 2; | + | int i = 2; |
| - | double r = Math.sqrt(i); | + | double r = Math.sqrt(i); |
| - | + | ||
| - | System.out.print(" | + | System.out.print(" |
| - | System.out.print(i); | + | System.out.print(i); |
| - | System.out.print(" | + | System.out.print(" |
| - | System.out.print(r); | + | System.out.print(r); |
| - | System.out.println(" | + | System.out.println(" |
| - | | + | |
| - | r = Math.sqrt(i); | + | r = Math.sqrt(i); |
| - | System.out.println(" | + | System.out.println(" |
| - | } | + | } |
| } | } | ||
| </ | </ | ||
| - | Αυτή είναι | + | Παρακάτω δίνεται το αποτέλεσμα της εκτέλεσης της κλάσης Root: |
| <code java> | <code java> | ||
| Line 38: | Line 113: | ||
| </ | </ | ||
| - | Οι μεταβλητές //i// και //r// διαμορφώθηκαν δύο φορές: την πρώτη φορά, χρησιμοποιώντας κώδικα σε μια υπερφόρτωση της print, τη δεύτερη φορά με κώδικα μετατροπής που δημιουργήθηκε αυτόματα από το μεταγλωττιστή της Java, ο οποίος επίσης χρησιμοποιεί την // | + | ==== Η μέθοδος |
| - | ==== Η Μέθοδος format | + | Η μέθοδος |
| - | Η μέθοδος //format// μορφοποιεί πολλαπλά στοιχεία που βασίζονται σε ενα //string// μορφής. Το string μορφής αποτελείται από //static// κείμενο με ενσωματωμένα προσδιοριστικά μορφής. Εκτός των προσδιοριστικών μορφής, | + | <code java SquareRoot.java> |
| - | + | public class SquareRoot | |
| - | Τα //strings// μορφής υποστηρίζουν πολλές δυνατότητες. Εδώ, θα καλύψουμε μόνο κάποια βασικά. | + | |
| - | + | ||
| - | Το παράδειγμα //Root2// μορφοποιεί δύο τιμές με μία μόνο κλήση της // | + | |
| - | + | ||
| - | <code java Root2.java> | + | |
| - | public class Root2 { | + | |
| public static void main(String[] args) { | public static void main(String[] args) { | ||
| int i = 2; | int i = 2; | ||
| Line 59: | Line 128: | ||
| </ | </ | ||
| - | Αυτή είναι η έξοδος: | + | H έξοδος της κλάσης SquareRoot είναι: '' |
| - | <code java> | + | |
| - | The square root of 2 is 1.414214. | + | Όλοι οι προσδιοριστές μορφοποίησης αρχίζουν με τον χαρακτήρα ' |
| + | |||
| + | * το %d μορφοποιεί μια τιμή integer ως μια δεκαδική τιμή. | ||
| + | * το %f μορφοποιεί μια floating point τιμή ως μια δεκαδική τιμή. | ||
| + | * το %n εισάγει έναν platform-specific χαρακτήρα αλλαγής γραμμής. | ||
| + | * το %x μορφοποιεί έναν integer ως μια δεκαεξαδική τιμή. | ||
| + | * το %s μορφοποιεί ένα String. | ||
| + | |||
| + | Οι σημαντικότεροι προσδιοριστές μορφοποίησης δίνονται παρακάτω: | ||
| + | {{: | ||
| + | |||
| + | Ακολουθούν δύο παραδείγματα χρήσης των σημαντικότερων προσδιοριστών μορφοποίησης που παρουσιάστηκαν προηγούμενα. | ||
| + | |||
| + | < | ||
| + | public class MyFormat { | ||
| + | public static void main(String[] args) { | ||
| + | System.out.format(" | ||
| + | } | ||
| + | } | ||
| </ | </ | ||
| - | Όπως και τα τρία που χρησιμοποιούνται σε αυτό το παράδειγμα, | + | <code java TestFormat.java> |
| + | import java.util.Calendar; | ||
| + | import java.util.Locale; | ||
| - | * το d μορφοποιεί μια τιμή integer ως μια δεκαδική τιμή. | + | public class TestFormat { |
| - | | + | |
| - | | + | public static void main(String[] args) { |
| + | long n = 461012; | ||
| + | System.out.format(" | ||
| + | | ||
| + | System.out.format(" | ||
| + | | ||
| + | System.out.format(" | ||
| + | |||
| + | double pi = Math.PI; | ||
| - | Εδώ είναι κάποιες άλλες μετατροπές: | + | System.out.format(" |
| + | System.out.format(" | ||
| + | System.out.format(" | ||
| + | System.out.format(" | ||
| + | System.out.format(Locale.FRANCE, | ||
| + | " | ||
| + | |||
| + | Calendar c = Calendar.getInstance(); | ||
| + | System.out.format(" | ||
| + | |||
| + | System.out.format(" | ||
| + | |||
| + | System.out.format(" | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| - | * το x μορφοποιεί έναν integer ως μια δεκαεξαδική τιμή. | ||
| - | * το s μορφοποιεί κάθε τιμή σε ένα string. | ||
| - | * το tB μορφοποιεί έναν integer σε ένα locale-specific όνομα μήνα. | ||
| - | |Προηγούμενο: | + | |Προηγούμενο: |