java:util_scanner_class
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
java:util_scanner_class [2020/03/05 12:12] – gthanos | java:util_scanner_class [Unknown date] (current) – external edit (Unknown date) 127.0.0.1 | ||
---|---|---|---|
Line 14: | Line 14: | ||
<code java TelephoneNumber.java> | <code java TelephoneNumber.java> | ||
+ | |||
public class TelephoneNumber { | public class TelephoneNumber { | ||
private String name; | private String name; | ||
- | private | + | private |
| | ||
- | public TelephoneNumber(String newName, | + | public TelephoneNumber(String newName, |
name = newName; | name = newName; | ||
number = newNumber; | number = newNumber; | ||
Line 24: | Line 25: | ||
| | ||
public String getName() { return name; } | public String getName() { return name; } | ||
- | public | + | public |
public void setName(String newName) { name = newName; } | public void setName(String newName) { name = newName; } | ||
- | public void setNumber(String | + | public void setNumber(long newNumber) { number = newNumber; } |
| | ||
public String toString() { | public String toString() { | ||
Line 34: | Line 35: | ||
</ | </ | ||
- | ===== Διαβάζοντας γραμμή-γραμμή ===== | + | Η Java παρέχει την επιπλέον δυνατότητα να διαβάζετε συγκεκριμένους τύπους δεδομένων μέσω της κλάσης [[http:// |
- | + | ||
- | Ό πιο απλός | + | |
- | + | ||
- | <code java ReadLineByLine.java> | + | |
- | import java.io.*; | + | |
- | + | ||
- | public class ReadLineByLine { | + | |
- | public static void main(String []args) { | + | |
- | try { | + | |
- | String input; | + | |
- | int i=0; | + | |
- | TelephoneNumber [] numbers = new TelephoneNumber[5]; | + | |
- | BufferedReader in = new BufferedReader(new FileReader(" | + | |
- | while( (input = in.readLine()) != null && input.length() > 0 ) { | + | |
- | numbers[i++] = createTelephoneNumber(input); | + | |
- | } | + | |
- | System.out.println(" | + | |
- | for(TelephoneNumber number : numbers) { | + | |
- | System.out.println(number); | + | |
- | } | + | |
- | } catch( IOException ex ) { | + | |
- | ex.printStackTrace(); | + | |
- | } | + | |
- | } | + | |
- | + | ||
- | public static TelephoneNumber createTelephoneNumber(String inputLine) { | + | |
- | int commaPosition = inputLine.indexOf("," | + | |
- | String name = inputLine.substring(0, | + | |
- | String telephone = inputLine.substring( commaPosition+1 ).trim(); | + | |
- | TelephoneNumber t = new TelephoneNumber(name, | + | |
- | return t; | + | |
- | } | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | ===== Χρησιμοποιώντας την | + | |
- | + | ||
- | Εκτός από την δυνατότητα που έχετε να διαβάζετε γραμμή-γραμμή η Java σας δίνει την επιπλέον δυνατότητα να διαβάζετε | + | |
Οι μέθοδοι της κλάσης //Scanner// έχουν συνοπτικά ως εξής: | Οι μέθοδοι της κλάσης //Scanner// έχουν συνοπτικά ως εξής: | ||
Line 96: | Line 59: | ||
==== Παράδειγμα ανάγνωσης με χρήση της Scanner ==== | ==== Παράδειγμα ανάγνωσης με χρήση της Scanner ==== | ||
- | <code java ReadWithScanner.java> | + | Το παρακάτω παράδειγμα διαβάζει από ένα αρχείο ένα σύνολο εγγραφών και δημιουργεί ένα πίνακα αντικειμένων τύπου TelephoneNumber. Στη συνέχεια εκτυπώνει τα περιεχόμενα του πίνακα στην κονσόλα. |
- | import java.util.Scanner; | + | |
- | import java.io.File; | + | |
+ | <code java ReadWithScanner.java> | ||
public class ReadWithScanner { | public class ReadWithScanner { | ||
public static void main(String []args) { | public static void main(String []args) { | ||
- | | + | |
+ | TelephoneNumber[] numbers; | ||
+ | numbers = readTelephoneNumbers(" | ||
+ | printTelephoneNumbers(numbers); | ||
+ | } | ||
+ | |||
+ | public static void printTelephoneNumbers(TelephoneNumber[] numbers) { | ||
+ | for(TelephoneNumber number : numbers) { | ||
+ | System.out.println(number); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | public static TelephoneNumber[] readTelephoneNumbers(String filename) { | ||
+ | | ||
+ | |||
+ | long number; | ||
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))) { |
- | | + | |
| | ||
while( sc.hasNext() ) { | while( sc.hasNext() ) { | ||
firstname = sc.next(); | firstname = sc.next(); | ||
lastname = sc.next(); | lastname = sc.next(); | ||
- | number = sc.next(); | + | number = sc.nextLong(); |
- | + | ||
- | if( lastname.charAt( lastname.length() -1 ) == ',' | + | |
- | lastname = lastname.substring(0, | + | |
numbers[i++] = new TelephoneNumber(firstname+" | numbers[i++] = new TelephoneNumber(firstname+" | ||
} | } | ||
- | | + | |
- | | + | |
- | } | + | |
- | for(TelephoneNumber telephoneNumber : numbers) { | + | } catch(FileNotFoundException ex) { |
- | System.out.println(telephoneNumber); | + | System.out.println(" |
} | } | ||
+ | | ||
+ | return numbers; | ||
} | } | ||
+ | | ||
} | } | ||
</ | </ | ||
<WRAP tip 80% center round> | <WRAP tip 80% center round> | ||
- | Το παραπάνω παράδειγμα θα μπορούσατε να το εκτελέσετε διαβάζοντας από την κονσόλα, αντί να διαβάζετε από αρχείο | + | Το παραπάνω παράδειγμα θα μπορούσατε να το εκτελέσετε διαβάζοντας από το πληκτρολόγιο, αντί να διαβάζετε από αρχείο. Για να διαβάσετε από την κονσόλα θα μπορούσατε να αντικαταστήσετε τη γραμμή |
<code java> | <code java> | ||
- | Scanner sc = new Scanner(new File(" | + | Scanner sc = new Scanner(new File(" |
</ | </ | ||
Line 137: | Line 113: | ||
<code java> | <code java> | ||
- | Scanner sc = new Scanner(System.in); | + | Scanner sc = new Scanner(System.in) |
</ | </ | ||
</ | </ | ||
- | | Προηγούμενο: | + | | Προηγούμενο: |
java/util_scanner_class.1583410354.txt.gz · Last modified: 2020/03/05 12:12 by gthanos