StringTokenizer Java
- sandra
- Wow! Terabyte level
- Posts: 4917
- Joined: Mon Oct 02, 2006 11:37 am
- Academic status: Alumnus/a
- Gender: ♀
- Location: στη φωλιά μου κοιτώντας ένα χωράφι με στάρι...
StringTokenizer Java
Έχω το εξής πρόβλημα. Πρέπει να διαβάσουμε δεκάδες κείμενα μέσω Java και να τα επεξεργαστούμε ώστε να απομονώσουμε τις τελείες τους. Χρησιμοποιούμε StringTokenizer με delimiter την τελεία και όλα καλά μέχρι που συναντάμε το εξής: Όταν φτάσει σε αποσιωπητικά (...) κρατάει το κάτι που είχε πριν την 1η τελεία και το κάτι μετά την 3η. Προφανώς με ενδιαφέρουν όλες οι τελείες, πώς θα μπορέσω να το μοντάρω ώστε να μην κάνει skip τις ενδιάμεσες?
Από εδώ κι εμπρός θα είσαι για πάντα υπεύθυνος για εκείνο που έχεις ημερώσει.
Είσαι υπεύθυνος για το τριαντάφυλλο σου...
Είσαι υπεύθυνος για το τριαντάφυλλο σου...
Re: StringTokenizer Java
Έχω μια ιδέα αλλά δεν ξέρω αν είναι σωστή ή αν κάνει αυτό που θες. Το σκεπτικό είναι να κάνεις το tokenizing σε 2 φάσεις σε περίπτωση που ο "τύπος" τελειών που έχεις είναι δύο (η '.' και τα '...').
Στο πρώτο πέρασμα θα χωρίσεις το κείμενό σου με βάση τα αποσιωπητικά. Αυτό θα παράγει κάποια Strings τα οποία θα περιέχουν απλές τελείες οπότε σε καθένα από αυτά θα εφαρμόσεις δεύτερη φορά τον tokenizer (όπως ακριβώς κάνεις ως τώρα).
Στο πρώτο πέρασμα θα χωρίσεις το κείμενό σου με βάση τα αποσιωπητικά. Αυτό θα παράγει κάποια Strings τα οποία θα περιέχουν απλές τελείες οπότε σε καθένα από αυτά θα εφαρμόσεις δεύτερη φορά τον tokenizer (όπως ακριβώς κάνεις ως τώρα).
Είμαι ένας μοναχικός cowboy...
- tZoLe
- Venus Former Team Member
- Posts: 1925
- Joined: Wed Feb 22, 2006 12:21 am
- Academic status: Alumnus/a
- Gender: ♂
- Location: Lausanne-Pasalimani
- Contact:
Re: StringTokenizer Java
Μήπως να κάνεις parse αρχικά το κείμενο και να προσθέσεις κάποιο "ειδικό" χαρακτήρα πριν από κάθε τελεία?

"αν ελευθερία σημαίνει κάτι τελικά , σημαίνει το δικαίωμα να λες στους ανθρώπους αυτό που δεν θέλουν να ακούσουν"
George Orwell (1903 - 1950)
έτσι
Θα μας λείψεις μάγκα Σισσέ...σε ευχαριστούμε για όλα...
- sandra
- Wow! Terabyte level
- Posts: 4917
- Joined: Mon Oct 02, 2006 11:37 am
- Academic status: Alumnus/a
- Gender: ♀
- Location: στη φωλιά μου κοιτώντας ένα χωράφι με στάρι...
Re: StringTokenizer Java
Τελικά διαλέξαμε την spliter της String. Δεν ξέρω αν είναι τόσο efficient αλλά προς το παρόν όλα καλά...
Από εδώ κι εμπρός θα είσαι για πάντα υπεύθυνος για εκείνο που έχεις ημερώσει.
Είσαι υπεύθυνος για το τριαντάφυλλο σου...
Είσαι υπεύθυνος για το τριαντάφυλλο σου...
- maxthebest
- Kilobyte level
- Posts: 180
- Joined: Fri Dec 02, 2005 5:23 pm
- Location: Παράδεισος
Re: StringTokenizer Java
sandra ,
εχεις αυτο το προβλημα επειδη χρησιμοποιησεις τον λαθος constructor της stringtokenizer,
ο σωστος ειναι ο τριτος -> StringTokenizer(String str,String delim,true),
την τριτη παραμετρο την βαζεις true για να σου επιστρεφει τα token,
πιθανοτατα η split του string θα ειναι πιο γρηγορη (δεν ρωτας hasNext() ) , απο την αλλη ομως η stringTokenizer ειναι πιο βολικη για εμενα (οποιοδηποτε στιγμη μπορεις να αλλαξεις το delimiter).
εχεις αυτο το προβλημα επειδη χρησιμοποιησεις τον λαθος constructor της stringtokenizer,
ο σωστος ειναι ο τριτος -> StringTokenizer(String str,String delim,true),
την τριτη παραμετρο την βαζεις true για να σου επιστρεφει τα token,
πιθανοτατα η split του string θα ειναι πιο γρηγορη (δεν ρωτας hasNext() ) , απο την αλλη ομως η stringTokenizer ειναι πιο βολικη για εμενα (οποιοδηποτε στιγμη μπορεις να αλλαξεις το delimiter).
Ούτοι συνέχθειν, αλλά συμφιλείν έφυν (Αντιγόνη στοίχος 523) =
Δεν γεννήθηκα για να συμμερίζομαι το μίσος , αλλά για να αγαπώ και να με αγαπούν.
Δεν γεννήθηκα για να συμμερίζομαι το μίσος , αλλά για να αγαπώ και να με αγαπούν.