This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision | Next revision Both sides next revision | ||
|
java:formatting [2021/05/14 15:09] |
java:formatting [2021/05/14 15:53] gthanos |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Εγγραφή σε αρχεία κείμενου ====== | ||
| + | |||
| + | Η εγγραφή αρχείων κειμένου γίνεται μέσω της κλάσης [[https:// | ||
| + | |||
| + | Στο παρακάτω παράδειγμα, | ||
| + | |||
| + | <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(" | ||
| + | } | ||
| + | | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Η κλάση [[https:// | ||
| + | |||
| + | ===== Μορφοποίηση Εξόδου ===== | ||
| + | |||
| + | Οι κλάσεις [[http:// | ||
| + | |||
| + | - Οι μέθοδοι //print// και //println// οι οποίες δέχονται μόνο ένα όρισμα είτε βασικού τύπου (int, long, double, byte etc), είτε αναφορικού τύπου ([[http:// | ||
| + | - Η μέθοδος //format// μορφοποιεί με βάση ένα String μορφοποίησης ανάλογο με αυτό της //printf// στη γλώσσα C. | ||
| + | |||
| + | ==== Οι print και println Μέθοδοι ==== | ||
| + | |||
| + | Η κλήση των //print// ή //println// απαιτεί την εκτύπωση ενός αλφαριθμητικού. Εάν το όρισμα που λαμβάνουν οι μέθοδοι αυτές δεν είναι αλφαριθμητικό τότε | ||
| + | * για αναφορικούς τύπους που δεν είναι String καλείται η μέθοδος '' | ||
| + | * για βασικούς τύπους, | ||
| + | |||
| + | <WRAP tip 80% center round> | ||
| + | Η διαφορά μεταξύ των μεθόδων //print// και //println// είναι ότι η δεύτερη εκτυπώνει στο τέλος και ένα χαρακτήρα αλλαγής γραμμής. | ||
| + | </ | ||
| + | |||
| + | Μπορείτε να δείτε το παρακάτω παράδειγμα: | ||
| + | |||
| + | <code java Root.java> | ||
| + | public class Root { | ||
| + | public static void main(String[] args) { | ||
| + | int i = 2; | ||
| + | double r = Math.sqrt(i); | ||
| + | | ||
| + | System.out.print(" | ||
| + | System.out.print(i); | ||
| + | System.out.print(" | ||
| + | System.out.print(r); | ||
| + | System.out.println(" | ||
| + | |||
| + | i = 5; | ||
| + | r = Math.sqrt(i); | ||
| + | System.out.println(" | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Παρακάτω δίνεται το αποτέλεσμα της εκτέλεσης της κλάσης Root: | ||
| + | |||
| + | <code java> | ||
| + | The square root of 2 is 1.4142135623730951. | ||
| + | The square root of 5 is 2.23606797749979. | ||
| + | </ | ||
| + | |||
| + | ==== Η μέθοδος format ή printf ==== | ||
| + | |||
| + | Η μέθοδος //format// μορφοποιεί ένα string σε αναλογία με τη συνάρτηση [[http:// | ||
| + | |||
| + | <code java SquareRoot.java> | ||
| + | public class SquareRoot { | ||
| + | public static void main(String[] args) { | ||
| + | int i = 2; | ||
| + | double r = Math.sqrt(i); | ||
| + | | ||
| + | System.out.format(" | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | H έξοδος της κλάσης SquareRoot είναι: '' | ||
| + | |||
| + | Όλοι οι προσδιοριστές μορφοποίησης αρχίζουν με τον χαρακτήρα ' | ||
| + | |||
| + | * το %d μορφοποιεί μια τιμή integer ως μια δεκαδική τιμή. | ||
| + | * το %f μορφοποιεί μια floating point τιμή ως μια δεκαδική τιμή. | ||
| + | * το %n εισάγει έναν platform-specific χαρακτήρα αλλαγής γραμμής. | ||
| + | * το %x μορφοποιεί έναν integer ως μια δεκαεξαδική τιμή. | ||
| + | * το %s μορφοποιεί ένα String. | ||
| + | |||
| + | Οι σημαντικότεροι προσδιοριστές μορφοποίησης δίνονται παρακάτω: | ||
| + | {{: | ||
| + | |||
| + | Ακολουθούν δύο παραδείγματα χρήσης των σημαντικότερων προσδιοριστών μορφοποίησης που παρουσιάστηκαν προηγούμενα. | ||
| + | |||
| + | <code java MyFormat.java> | ||
| + | public class MyFormat { | ||
| + | public static void main(String[] args) { | ||
| + | System.out.format(" | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | <code java TestFormat.java> | ||
| + | import java.util.Calendar; | ||
| + | import java.util.Locale; | ||
| + | |||
| + | public class TestFormat { | ||
| + | | ||
| + | public static void main(String[] args) { | ||
| + | long n = 461012; | ||
| + | System.out.format(" | ||
| + | System.out.format(" | ||
| + | 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(" | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | |||
| + | |Προηγούμενο: | ||
| + | |||