Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

String Reading/Parsing in Java

Îåêßíçóå áðü ôï ìÝëïò Snollygoster. Τελευταία δημοσίευση από το μέλος Snollygoster στις 05-04-2006, 12:06. Υπάρχουν 7 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  04-04-2006, 11:17 11543

    String Reading/Parsing in Java

    Καλημέρα σε όλους,
           χθες ξεκίνησα να ασχολούμαι με το 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).

    Ευχαριστώ.

  •  04-04-2006, 12:20 11545 σε απάντηση της 11543

    Απ: String Reading/Parsing in Java

    Η περιοχή συζητήσεων που έχεις τοποθετήσει αυτό το μήνυμα δεν είναι κατάλληλη καθώς αφορά σε θέματα σχετικά με Windows Forms .ΝΕΤ applications.

    Δεν έχουμε κάποιο ψυχολογικό :) πρόβλημα σχετικά με τη Java, απλώς μειώνονται οι πιθανότητες να σου δώσει κάποιος λύση...
    Vir prudens non contra ventum mingit
  •  04-04-2006, 12:51 11547 σε απάντηση της 11543

    Απ: String Reading/Parsing in Java

    Το είδα αυτό αλλά κατηγορία για Java δεν υπάρχει. Τόσο πια δεν την αγαπάτε;
  •  04-04-2006, 13:21 11548 σε απάντηση της 11547

    Απ: String Reading/Parsing in Java

    Δεν είναι θέμα αγάπης ή μίσους. Το dotNETZone.gr (όπως λέει και το όνομά του), δεν ακολουθεί γενική θεματολογία σχετικά με τον προγραμματισμό (π.χ. δεν ασχολείται με perl), αλλα πολύ συγκεκριμένη θεματολογία, η οποία ασχολείται με τις τεχνολογίες της Microsoft και στο μεγαλύτερο μέρος του πιό συγκεκριμένα με τις τεχνολογίες .NET της Microsoft.

    Ειναι σαν να ρωτάς σε ένα Java Forum πώς μπορείς να κάνεις κάτι με VB6. Οι πιθανότητες ειναι να μην βρεθεί κάποιος που να γνωρίζει, λόγω της διαφορετικής θεματολογίας του forum.

    Από την άλλη πλευρά, αν κάποιος απαντήσει στο ερώτημα αυτό, ενδέχεται να απαντήσει με κώδικα σε J#. Απλά δεν υπαρχουν (εκτιμώ) ιδιαίτερα πολλά μέλη μέχρι στιγμής που να ασχολούνται με J#.

     


    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  04-04-2006, 18:40 11559 σε απάντηση της 11543

    Απ: String Reading/Parsing in Java

     Snollygoster wrote:
    Καλημέρα σε όλους,
           χθες ξεκίνησα να ασχολούμαι με το 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).

    Ευχαριστώ.

    Αν έχεις όλη την πληροφορία μέσα σε ένα string όπως αναφέρεις παρπάνω τότε το μόνο που χρειάζεται να κάνεις είναι να χρησιμοποιήσεις συναρτήσεις πάνω σε αυτό για να πάρεις το substring που σε ενδιαφέρει. Έτσι εάν έχεις το dataString το οποίο έιναι το αρχικό σου String μπορείς να κάνεις τα ακόλουθα.

    String startFlag = "Start flag word";

    String endFlag = "End flag word";

    int start = dataString.indexOf(startFlag);   // Σου επιστρέφει το σημείο μέσα στο dataString όπου βρίσκεται η λέξη

    int end = dataString.indexOf(endFlag, start+1);  //Μία από τα ίδια ψάχνοντας όμως από το σημείο που βρέθηκε το Start flag word και μετά

     String finalString = dataString.subString(start+startFlag.length(),endFlag);

    Στο finalString θα περιέχονται τα:

    Word I need A
    Word I need B
    Word I need C
    ...
    Word I need Z

    Αυτό το κάνεις parse όπως σε βολεύει τώρα.

    Προσοχή μόνο να κάνεις τους απαραίτητους ελέγχους κατά την διαδικασία. Ελπίζω να βοήθησα.

  •  04-04-2006, 23:57 11567 σε απάντηση της 11559

    Απ: String Reading/Parsing in Java

    Επίσης, μπορείς να χρησιμοποιήσεις regular expressions. Ρίξε μια ματιά σε αυτό: http://www.regular-expressions.info/java.html 


    Vir prudens non contra ventum mingit
  •  05-04-2006, 03:43 11569 σε απάντηση της 11567

    Απ: String Reading/Parsing in Java

    Οι regular expressions δεν ξέρω κατά πόσο είναι αξιόπιστες σε matching ενός πολύ μεγάλου String.
    Πρόσφατα είχα μια άσχημη εμπειρία όπου χρησιμοποίησα regexps σε ένα πολύ μεγάλο String και πέταγε κάτι
    περίεργες exceptions περί regular expressions της Java(όνομα δεν θυμάμαι). Όταν δοκίμασα σε ποιο μικρό String δούλεψε μια χαρά.
    Κώστας Μ.
  •  05-04-2006, 12:06 11587 σε απάντηση της 11543

    Απ: String Reading/Parsing in Java

    Σας ευχαριστώ πολύ όλους. Το έλυσα με αυτό:

    http://java.sun.com/j2se/1.4.2/docs/api/java/io/StreamTokenizer.html
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems