java:util_scanner_class

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
java:util_scanner_class [2020/03/05 12:30]
gthanos [Παράδειγμα ανάγνωσης με χρήση της Scanner]
java:util_scanner_class [2021/04/04 17:20]
gthanos
Line 35: Line 35:
 </code> </code>
  
-===== Διαβάζοντας γραμμή-γραμμή ===== +Η Java παρέχει την επιπλέον δυνατότητα να διαβάζετε συγκεκριμένους τύπους δεδομένων μέσω της κλάσης [[http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html|java.util.Scanner]]. Η κλάση Scanner επιτρέπει το διάβασμα από μία ροή χαρακτήρων γραμμή-γραμμή ή λέξη-λέξη. Όταν διαβάζετε λέξη-λέξη παρέχεται επιπλέον η δυνατότητα μετατροπής της πληροφορίας σε //primitive// τύπους δεδομένων όπως byte, short, int, longfloat, double κ.α.
- +
-Ό πιο απλός τρόπος ανάγνωσης αρχείων κειμένου είναι το διάβασμα κάθε γραμμής ξεχωριστά και στη συνέχει η επεξεργασία της γραμμής, ώστε να εξάγουμε τα αποτελέσματα που θέλουμε. Προκειμένου να επιτύχετε το διάβασμα ενός αρχείου γραμμή-γραμμή μπορείτε να το κάνετε με χρήση της κλάσης [[http://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html|java.io.BufferedReader]], όπως φαίνεται παρακάτω: +
- +
-<code java ReadLineByLine.java> +
-import java.io.*; +
- +
-public class ReadLineByLine { +
-  public static void main(String []args) { +
-    try { +
-      String input, filename = "telephone-list.txt"; +
-      int i=0; +
-      TelephoneNumber [] numbers = new TelephoneNumber[5]; +
-      BufferedReader in = new BufferedReader(new FileReader(filename)); +
-      while( (input = in.readLine()) != null && input.length() > 0 ) { +
-        numbers[i++] = createTelephoneNumber(input); +
-      } +
-      System.out.println("-------- Telephone Numbers ---------"); +
-      for(TelephoneNumber number : numbers) { +
-        System.out.println(number); +
-      } +
-    } catch( IOException ex ) { +
-      ex.printStackTrace(); +
-    } +
-  } +
-   +
-  public static TelephoneNumber createTelephoneNumber(String inputLine) { +
-    String []tokens = inputLine.split("[\\s]+"); +
-    String name = tokens[0].trim() + " " + tokens[1].trim();  +
-    long number = Long.parseLong(tokens[2].trim()); +
-    TelephoneNumber t = new TelephoneNumber(name, number); +
-    return t; +
-  } +
-+
-</code> +
- +
-===== Χρησιμοποιώντας την κλάση Scanner ===== +
- +
-Εκτός από την δυνατότητα που έχετε να διαβάζετε γραμμή-γραμμή η Java σας δίνει την επιπλέον δυνατότητα να διαβάζετε συγκεκριμένους τύπους δεδομένων μέσω της κλάσης [[http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html|java.util.Scanner]]. Η κλάση Scanner σας δίνει την δυνατότητα να διαβάζετε από ένα αρχείο ή από την κονσόλα τα δεδομένα σας είτε ως //primitive// τύπους δεδομένων (int, bytelong, double κλπ), είτε ως StringΕπίσης σας δίνει την δυνατότητα να διαβάσετε μία ολόκληρη γραμμή, όπως κάνατε και με χρήση της κλάσης [[http://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html|java.io.BufferedReader]].+
  
 Οι μέθοδοι της κλάσης //Scanner// έχουν συνοπτικά ως εξής: Οι μέθοδοι της κλάσης //Scanner// έχουν συνοπτικά ως εξής:
Line 108: Line 70:
     int i=0;     int i=0;
     TelephoneNumber numbers[] = new TelephoneNumber[5];     TelephoneNumber numbers[] = new TelephoneNumber[5];
-    try +    try(Scanner sc = new Scanner(new File(filename))) {
-      Scanner sc = new Scanner(new File(filename));+
              
       while( sc.hasNext() ) {               while( sc.hasNext() ) {        
Line 134: Line 95:
 Το παραπάνω παράδειγμα θα μπορούσατε να το εκτελέσετε διαβάζοντας από την κονσόλα, αντί να διαβάζετε από αρχείο προκειμένου να διαβάσετε από την κονσόλα θα μπορούσατε να αντικαταστήσετε την γραμμή Το παραπάνω παράδειγμα θα μπορούσατε να το εκτελέσετε διαβάζοντας από την κονσόλα, αντί να διαβάζετε από αρχείο προκειμένου να διαβάσετε από την κονσόλα θα μπορούσατε να αντικαταστήσετε την γραμμή
 <code java> <code java>
-Scanner sc = new Scanner(new File("telephone-list.txt"));+Scanner sc = new Scanner(new File("telephone-list.txt"))
 </code> </code>
  
Line 140: Line 101:
  
 <code java> <code java>
-Scanner sc = new Scanner(System.in);+Scanner sc = new Scanner(System.in)
 </code> </code>
 </WRAP> </WRAP>
java/util_scanner_class.txt · Last modified: 2021/05/14 15:13 (external edit)