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

 

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

Sorting ελληνικών λέξεων

Îåêßíçóå áðü ôï ìÝëïò gtsoulou. Τελευταία δημοσίευση από το μέλος Παναγιώτης Καναβός στις 07-10-2005, 16:20. Υπάρχουν 1 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  07-10-2005, 14:27 6019

    Sorting ελληνικών λέξεων

    Γειά σας.
    Έχω ένα πρόβλημα σχετικά με την ταξινόμηση ελληνικών λέξεων.
    Θέλω να κάνω sort αλφαβητικά μια σειρά από ελληνικές λέξεις που είναι μέσα σε ένα array. Δοκίμασα να βάλω τις λέξεις σε μια sortedlist. Επίσης δοκίμασα να κάνω sort το array που είναι αποθηκευμένες οι λέξεις, αλλά τα αποτελέσματα είναι λανθασμένα. Για να σας δώσω να καταλάβεται τι εννοώ:
    Έστω οι δυο λέξεις:
    αιβ
    αία

    Η σειρά που τις έγραψα είναι η σωστή αλφαβητικά σειρά (προηγούνται τα άτονα γράμματα). Αν όμως αυτά τα βάλουμε σε μια sortedlist για παράδειγμα, η σειρά που θα τα βάλει θα είναι:
    αία
    αιβ

    Παρ' όλα αυτά, αν βάλουμε σε μια sortedlist τα γράμματα "ί" και "ι" τότε θα τα ταξινομήσει σωστά. Το πρόβλημα λοιπόν είναι όταν έχουμε λέξεις.
    Ελπίζω κάποιος να έχει καμιά ιδέα για το τι παιζει...
    Ευχαριστώ.
  •  07-10-2005, 16:20 6026 σε απάντηση της 6019

    Απ: Sorting ελληνικών λέξεων

    Δηλαδή σε ένα λεξικό ο πύραυλος έρχεται μετά την πυρίτιδα? Confused [8-)]

    Όπως και να έχει, η ταξινόμηση των string γίνεται βάση του CultureInfo του Thread. Δυστυχώς, για τα ελληνικά το CultureInfo δεν λαμβάνει υπόψη τους τόνους. Γενικά τα Windows δεν λαμβάνουν υπόψη τους τόνους στην ταξινόμηση, ενώ και στο Unicode οι τονισμένοι χαρακτήρες προηγούνται των άτονων.  Μπορείς πάντως να περάσεις στον constructor μια δικιά σου κλάση που θα υλοποιεί το IComparer και θα κάνει την ταξινόμηση όπως τη θέλεις.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems