StringTokenizer Java

Συζητήσεις για γλώσσες προγραμματισμού και θέματα σχετικά με προγραμματισμό.
Post Reply
User avatar
sandra
Wow! Terabyte level
Wow! Terabyte level
Posts: 4917
Joined: Mon Oct 02, 2006 11:37 am
Academic status: Alumnus/a
Gender:
Location: στη φωλιά μου κοιτώντας ένα χωράφι με στάρι...

StringTokenizer Java

Post by sandra » Wed Jan 28, 2009 10:18 am

Έχω το εξής πρόβλημα. Πρέπει να διαβάσουμε δεκάδες κείμενα μέσω Java και να τα επεξεργαστούμε ώστε να απομονώσουμε τις τελείες τους. Χρησιμοποιούμε StringTokenizer με delimiter την τελεία και όλα καλά μέχρι που συναντάμε το εξής: Όταν φτάσει σε αποσιωπητικά (...) κρατάει το κάτι που είχε πριν την 1η τελεία και το κάτι μετά την 3η. Προφανώς με ενδιαφέρουν όλες οι τελείες, πώς θα μπορέσω να το μοντάρω ώστε να μην κάνει skip τις ενδιάμεσες?
Από εδώ κι εμπρός θα είσαι για πάντα υπεύθυνος για εκείνο που έχεις ημερώσει.
Είσαι υπεύθυνος για το τριαντάφυλλο σου...
User avatar
Luke
Gbyte level
Gbyte level
Posts: 1388
Joined: Wed Aug 09, 2006 11:19 am
Academic status: Alumnus/a
Gender:

Re: StringTokenizer Java

Post by Luke » Wed Jan 28, 2009 10:59 am

Έχω μια ιδέα αλλά δεν ξέρω αν είναι σωστή ή αν κάνει αυτό που θες. Το σκεπτικό είναι να κάνεις το tokenizing σε 2 φάσεις σε περίπτωση που ο "τύπος" τελειών που έχεις είναι δύο (η '.' και τα '...').
Στο πρώτο πέρασμα θα χωρίσεις το κείμενό σου με βάση τα αποσιωπητικά. Αυτό θα παράγει κάποια Strings τα οποία θα περιέχουν απλές τελείες οπότε σε καθένα από αυτά θα εφαρμόσεις δεύτερη φορά τον tokenizer (όπως ακριβώς κάνεις ως τώρα).
Είμαι ένας μοναχικός cowboy...
User avatar
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

Post by tZoLe » Thu Jan 29, 2009 1:58 am

Μήπως να κάνεις parse αρχικά το κείμενο και να προσθέσεις κάποιο "ειδικό" χαρακτήρα πριν από κάθε τελεία?
Image
"αν ελευθερία σημαίνει κάτι τελικά , σημαίνει το δικαίωμα να λες στους ανθρώπους αυτό που δεν θέλουν να ακούσουν"
George Orwell (1903 - 1950)

έτσι

Θα μας λείψεις μάγκα Σισσέ...σε ευχαριστούμε για όλα...
User avatar
sandra
Wow! Terabyte level
Wow! Terabyte level
Posts: 4917
Joined: Mon Oct 02, 2006 11:37 am
Academic status: Alumnus/a
Gender:
Location: στη φωλιά μου κοιτώντας ένα χωράφι με στάρι...

Re: StringTokenizer Java

Post by sandra » Thu Jan 29, 2009 2:09 am

Τελικά διαλέξαμε την spliter της String. Δεν ξέρω αν είναι τόσο efficient αλλά προς το παρόν όλα καλά...
Από εδώ κι εμπρός θα είσαι για πάντα υπεύθυνος για εκείνο που έχεις ημερώσει.
Είσαι υπεύθυνος για το τριαντάφυλλο σου...
User avatar
maxthebest
Kilobyte level
Kilobyte level
Posts: 180
Joined: Fri Dec 02, 2005 5:23 pm
Location: Παράδεισος

Re: StringTokenizer Java

Post by maxthebest » Thu Jan 29, 2009 8:32 am

sandra ,
εχεις αυτο το προβλημα επειδη χρησιμοποιησεις τον λαθος constructor της stringtokenizer,

ο σωστος ειναι ο τριτος -> StringTokenizer(String str,String delim,true),
την τριτη παραμετρο την βαζεις true για να σου επιστρεφει τα token,

πιθανοτατα η split του string θα ειναι πιο γρηγορη (δεν ρωτας hasNext() ) , απο την αλλη ομως η stringTokenizer ειναι πιο βολικη για εμενα (οποιοδηποτε στιγμη μπορεις να αλλαξεις το delimiter).
Ούτοι συνέχθειν, αλλά συμφιλείν έφυν (Αντιγόνη στοίχος 523) =
Δεν γεννήθηκα για να συμμερίζομαι το μίσος , αλλά για να αγαπώ και να με αγαπούν.
Post Reply

Return to “Προγραμματισμός”