pbp Δημοσ. 16 Μαρτίου 2012 Δημοσ. 16 Μαρτίου 2012 Γεια σας, Μήπως ξέρει κανείς με ποια συνάρτηση μπορώ να διαβάζω ακεραίους (έναν-έναν) ή έστω χαρακτήρες μέχρι να βρίσκω κενή σειρά σε ένα αρχείο txt? Το μόνο που κατάφερα να βρω στο google είναι να διαβάζω μία σειρά ολόκληρη κ να την αποθηκεύω σε String πράγμα που δεν με βολεύει και πολύ για αυτό που θέλω να κάνω. Ευχαριστώ για το χρόνο σας.
nexuss Δημοσ. 16 Μαρτίου 2012 Δημοσ. 16 Μαρτίου 2012 Μπορείς να χρησιμοποιήσεις την κλάση Scanner και τις μεθόδους hasNextInt() και nextInt().
ZAKKWYLDE Δημοσ. 16 Μαρτίου 2012 Δημοσ. 16 Μαρτίου 2012 Me Scanner, απλά δεν επιστρέφει chars οπότε θα πρέπει να τα κάνεις String και να πάρεις τους char me charAt(index)
pbp Δημοσ. 17 Μαρτίου 2012 Μέλος Δημοσ. 17 Μαρτίου 2012 (επεξεργασμένο) Μπορείς να χρησιμοποιήσεις την κλάση Scanner και τις μεθόδους hasNextInt() και nextInt(). Πολύ καλό αυτό με τη Scanner αλλά πώς θα καταλαβαίνω κάθε φορά ότι στο αρχείο αλλάζω γραμμή ή ότι υπάρχει κενή γραμμή? πχ θέλω να διαβάσω το αρχείο 3 7 1 2 3 4 5 6 7 8 9 9 2 4 5 5 5 5 5 5 5 5 5 κάθε γραμμή έχει διαφορετική σημασία για τα δεδομένα του προγράμματος. Το ψαξα παραπάνω και βρήκα κατι για χρήση delimiter αλλά δεν κατάλαβα και πολλα Επεξ/σία 17 Μαρτίου 2012 από pbp
nexuss Δημοσ. 18 Μαρτίου 2012 Δημοσ. 18 Μαρτίου 2012 Ναι για να χρησιμοποιήσεις αυτή τη μέθοδο θα πρέπει να γνωρίζεις λίγο από regular expressions (ή πιο απλά regex). Επειδή από ότι καταλαβαίνω κάθε σειρά μπορεί να έχει διαφορετική μορφή (άλλη έχει δυο ψηφία, άλλη έχει 3, άλλη είναι κενή κλπ), για να μην μπλέξεις με regex (αν ασχοληθείς όμως έστω και λίγο σοβαρά με προγραμματισμό θα σου είναι πολύ χρήσιμο να τα μάθεις) μπορούμε να κάνουμε το εξής: >public static void main(String[] args) throws Exception { BufferedReader r = new BufferedReader(new FileReader("/**Put file location here**/")); String line = ""; Scanner s = null; while ((line = r.readLine()) != null) { if (line.trim().isEmpty()) { continue; } s = new Scanner(line); while (s.hasNextInt()) { System.out.print(s.nextInt() + " "); } System.out.println(); } } Στην ουσία ο παραπάνω κώδικας διαβάζει μια μια κάθε γραμμή ενός αρχείου και σε κάθε γραμμή δημιουργούμε ένα Scanner, με το οποίο διαβάζουμε τους integers που θέλουμε. Χρησιμοποιούμε τις μεθόδους που σου ανέφερα πιο πάνω (hasNextInt και nextInt) αλλά και τη μέθοδο readLine από την κλάση BufferedReader, η οποία είναι πολύ χρήσιμη για τέτοιου είδους εργασίες. Κοίταξέ τα και αν δυσκολευτείς κάπου, πες μας.
pbp Δημοσ. 21 Μαρτίου 2012 Μέλος Δημοσ. 21 Μαρτίου 2012 Ναι για να χρησιμοποιήσεις αυτή τη μέθοδο θα πρέπει να γνωρίζεις λίγο από regular expressions (ή πιο απλά regex). Επειδή από ότι καταλαβαίνω κάθε σειρά μπορεί να έχει διαφορετική μορφή (άλλη έχει δυο ψηφία, άλλη έχει 3, άλλη είναι κενή κλπ), για να μην μπλέξεις με regex (αν ασχοληθείς όμως έστω και λίγο σοβαρά με προγραμματισμό θα σου είναι πολύ χρήσιμο να τα μάθεις) μπορούμε να κάνουμε το εξής: >public static void main(String[] args) throws Exception { BufferedReader r = new BufferedReader(new FileReader("/**Put file location here**/")); String line = ""; Scanner s = null; while ((line = r.readLine()) != null) { if (line.trim().isEmpty()) { continue; } s = new Scanner(line); while (s.hasNextInt()) { System.out.print(s.nextInt() + " "); } System.out.println(); } } Στην ουσία ο παραπάνω κώδικας διαβάζει μια μια κάθε γραμμή ενός αρχείου και σε κάθε γραμμή δημιουργούμε ένα Scanner, με το οποίο διαβάζουμε τους integers που θέλουμε. Χρησιμοποιούμε τις μεθόδους που σου ανέφερα πιο πάνω (hasNextInt και nextInt) αλλά και τη μέθοδο readLine από την κλάση BufferedReader, η οποία είναι πολύ χρήσιμη για τέτοιου είδους εργασίες. Κοίταξέ τα και αν δυσκολευτείς κάπου, πες μας. Σε ευχαριστώ πάρα πολύ φίλε μου. Τα κατάφερα χάρις τη βοήθεια σου Να σαι καλά!
nexuss Δημοσ. 22 Μαρτίου 2012 Δημοσ. 22 Μαρτίου 2012 Χαίρομαι που σε βοήθησα και το βρήκες. Άντε, σειρά έχει τώρα να μάθεις regex!!
pbp Δημοσ. 23 Μαρτίου 2012 Μέλος Δημοσ. 23 Μαρτίου 2012 Χαίρομαι που σε βοήθησα και το βρήκες. Άντε, σειρά έχει τώρα να μάθεις regex!! Κανονικές εκφράσεις ξέρω από το πανεπιστήμιο Απλά δεν έχω ιδέα πως μπορώ να χρησιμοποιήσω τις γνώσεις μου αυτές σε JAVA :/
nexuss Δημοσ. 24 Μαρτίου 2012 Δημοσ. 24 Μαρτίου 2012 Εφόσον γνωρίζεις τότε είναι πολύ εύκολο. Αρκεί να ρίξεις μια ματιά στο package java.util.regex. Δες περισσότερα εδώ: http://docs.oracle.com/javase/6/docs/api/java/util/regex/package-summary.html
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα