Snolly Δημοσ. 4 Απριλίου 2006 Δημοσ. 4 Απριλίου 2006 Καλημέρα σε όλους, χθες ξεκίνησα να ασχολούμαι με το Xcode της Apple για να φτιάξω ένα μικρό πρόγραμμα σε Cocoa και Java. Java γνωρίζω καλά Cocoa & Objective C καθόλου. Διάβασα λοιπόν τα tutorial έχτισα ένα μικρό GUI (πολύ όμορφο φτου στα Apple) και είδα πως σχετικά εύκολα ενσωματώνω classes από Java χωρίς την παραμικρή τροποποίηση. Μέχρι τώρα το πρόγραμμα κάνει τα εξής: Δίνει ο χρήστης ένα string σε ένα textfield. Από εκεί εγώ κατασκευάζω ένα URL και "κατεβάζω" όλο το HTML της εν λόγω σελίδας σε ένα τεράστιο stream. Απο εκεί χρησιμοποίησα έναν HTML Parser και μου καθαρίζει όλο τον HTML code και μένουν μόνο πληροφορίες που είχε η σελίδα επάνω σε σχετικά ευανάγνωστη μορφή μέσα σε ένα String. Εγώ από αυτή την πληροφορία θέλω μερικές λέξεις που είναι ΠΑΝΤΑ διαδοχικά η μία μετά την άλλη και μάλιστα σε διαφορετική γραμμή. Μπορώ επίσης να ξεχωρίσω που ξεκινάν και που τελειώνουν. Φαίνεται κάπως έτσι: > Text I don't care about, text I don't care about some more text I don't care about, text I don't care about ... even more text I don't care about, text I don't care about START FLAG WORD -> //Πάντα η ίδια λέξη θα είναι εδώ την οποία δε χρειάζομαι. Word I need A Word I need B Word I need C ... Word I need Z END FLAG WORD -> //Πάντα ή ίδια λέξη την οποία δε χρειάζομαι a lot of text millions of lines I dont't and will never ever care about. Εγώ θέλω να απομονώσω μόνο τις Word I need - Έχει κανείς καμιά ιδέα πως θα μπορούσε να γίνει αυτό; Να χρησιοποιήσω Strings ή Streams; Μπορεί να δώσει κανείς ένα παραδειγμά σε κώδικα; (πάντα Java). Ευχαριστώ.
Cue Δημοσ. 4 Απριλίου 2006 Δημοσ. 4 Απριλίου 2006 Αυτό με μια γρήγορη ματιά μου θυμίζει κάτι από EDI. Τα words που θες είναι separated με κάποιον χαρακτήρα? Έχουν κάποιο standar length ίσως? -edit- τώρα είδα πως ξεκινάνε σε διαφορετική γραμμή καθώς επίσης ότι μπορείς να ξεχωρίσεις που ξεκινάνε και τελειώνουνε. Εφόσον μπορείς να ξεχωρίσεις κάθε φορά που ξεκινάει και που τελειώνει η κάθε λέξη τότε φτιάξε έναν Iterator για να διαβάζεις ένα ένα τα words που θες. Ρίξε και μια ματιά στην String#split(String) αν πιστεύεις ότι μπορεί να σου φανεί χρήσιμη.
Red_Phantom Δημοσ. 4 Απριλίου 2006 Δημοσ. 4 Απριλίου 2006 StreamTokenizer http://java.sun.com/j2se/1.4.2/docs/api/java/io/StreamTokenizer.html
Snolly Δημοσ. 5 Απριλίου 2006 Μέλος Δημοσ. 5 Απριλίου 2006 StreamTokenizer http://java.sun.com/j2se/1.4.2/docs/api/java/io/StreamTokenizer.html Από το API Each byte read from the input stream is regarded as a character in the range '\u0000' through '\u00FF'. The character value is used to look up five possible attributes of the character: white space, alphabetic, numeric, string quote, and comment character. Each character can have zero or more of these attributes. Εμένα το διαχωριστικό είναι το new line... EDIT: Υπάρχει αυτό το method eolIsSignificant - Determines whether or not ends of line are treated as tokens. Σε ευχαριστώ πολύ είναι ό,τι έψαχνα!
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.