ArrayList Object

Συζητήσεις για την Java

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
kalos123
Δημοσιεύσεις: 5
Εγγραφή: 07 Μάιος 2015 17:11

ArrayList Object

Δημοσίευση από kalos123 » 07 Μάιος 2015 17:19

καλησπερα και καλως σας βρηκα.

Μια βοηθεια σε κατι που κανω .Διαβαζ ενα αρχειο με λεξεις και βαζω ολες τις λεξεις σε ενα ArrayList<String> list.
Απο οτι ειδα μπορω να το κανω και ως εξης ArrayList<Word> list.Οπου Word η κλαση μου .Η ερωτηση μου ειναι πως μπορω μετα να παρω την καθεμια λεξη και να την εχω σαν String ετσι ωστε να splitaro τα γραμματα που εχει η καθε μια.?

Εχω φτιαξει ηδη κατι που οταν τα κανω add στην list σαν String μπορω μετα να τα splitaro.To
θεμα ειναι οτι εφοσον τα κανω word object πως θα κανω το split?

καποια βοηθεια?

Άβαταρ μέλους
burnmind
Script Master
Δημοσιεύσεις: 954
Εγγραφή: 26 Σεπ 2009 02:14
Τοποθεσία: UK
Επικοινωνία:

ArrayList Object

Δημοσίευση από burnmind » 07 Μάιος 2015 18:13

Αν δε δείξεις τον κώδικα που έχεις γράψει, μόνο υποθέσεις μπορούμε να κάνουμε. :)

Υποθέτω λοιπόν, πως κάπου αποθηκεύεις την λέξη ως String μέσα στην Word class σου. Οπότε, μπορείς απλά να φτιάξεις μια getter function που θα επιστρέφει την τιμή αυτής της μεταβλητής και να τη χρησιμοποιείς όπου θες (στη συγκεκριμένη περίπτωση για να κάνεις το split).

kalos123
Δημοσιεύσεις: 5
Εγγραφή: 07 Μάιος 2015 17:11

ArrayList Object

Δημοσίευση από kalos123 » 07 Μάιος 2015 22:32

burnmind έγραψε:Αν δε δείξεις τον κώδικα που έχεις γράψει, μόνο υποθέσεις μπορούμε να κάνουμε. :)

Υποθέτω λοιπόν, πως κάπου αποθηκεύεις την λέξη ως String μέσα στην Word class σου. Οπότε, μπορείς απλά να φτιάξεις μια getter function που θα επιστρέφει την τιμή αυτής της μεταβλητής και να τη χρησιμοποιείς όπου θες (στη συγκεκριμένη περίπτωση για να κάνεις το split).
ok δες εδω

Κώδικας: Επιλογή όλων

 ArrayList<Word> wordList = new ArrayList<Word>&#40;&#41;; // το ArrayList

Διαβαζω αρχειο και τα στελνω σε ArrayList
try &#123;
            BufferedReader reader = new BufferedReader&#40;new FileReader&#40;filePath&#41;&#41;;
            String line = "";
            while &#40;&#40;line = reader.readLine&#40;&#41;&#41; != null&#41; &#123;
                addWord&#40;line&#41;;
            &#125;
            reader.close&#40;&#41;;
        &#125; catch &#40;Exception ex&#41; &#123;
            System.out.println&#40;"Exception&#58; " + ex.getMessage&#40;&#41;&#41;;
        &#125;
    &#125;

    void addWord&#40;String w&#41; &#123;
        Word nextWord = new Word&#40;w&#41;;
        wordList.add&#40;nextWord&#41;;

    &#125;

και εχω την κλαση  word εκει εχω 

private String word;
private int id;

 get/set και constructor  toString&#40;&#41;


και μετα 

    public String&#91;&#93; convertCharToNumber&#40;String w&#41; &#123;
        String digit&#91;&#93; = new String&#91;w.length&#40;&#41;&#93;;
        char&#91;&#93; c = w.toUpperCase&#40;&#41;.toCharArray&#40;&#41;;
        for &#40;int i = 0; i < c.length; i++&#41; &#123;
            char f = c&#91;i&#93;;
            switch &#40;f&#41; &#123;
                case 'E'&#58;
                    digit&#91;i&#93; = "0";
                    break;
                case 'F'&#58;      
                case 'R'&#58;       
                    digit&#91;i&#93; = "4";
.....
....

&#125;&#125;

και 

public String concatenateDigits&#40;String&#91;&#93; s, String separator&#41; &#123;
        String result = "";
        if &#40;s.length > 0&#41; &#123;
            result = s&#91;0&#93;;
            for &#40;int i = 1; i < s.length; i++&#41; &#123;
                result = result + separator + s&#91;i&#93;;
            &#125;
        &#125;
        System.out.println&#40;result&#41;;
        return result;
    &#125;


εαν τα βαλω σαν String στο ArrayList και τα στειλω στην switch θα παρω για την λεξη π.χ hello=90888 σε ψηφια μετα τα στελνω στο concatenateDigits(String[] s, String separator) και τα ξαναμαζευω σε ενα String παλι.
Αμα βαλω word στο ArrayList<word> αυτο δεν το εχω πως θα το στειλω στην switch να μου σπασει το String σε ψηφια να τα βαλω σε ενα πινακα και μετα να τα στειλω στηνoncatenateDigits(String[] s, String separator) να τα ξαναμαζεψω σαν String για να τα βαλω σε ενα hashMap.

Στην ουσια θελω να κανω για καθε word=hello......bye........seee.......* να τα μετατρεψω σε ψηφιο με την σειρα που θελω(καθε γραμμα με καποιο ψηφιο) να το αποθηκευσω σε πινακα (γιατι το εχω κανει chars οποτε τα μαζευω για καθε μηκος λεξεις που δινω σε πινακα και τα στελνω στην oncatenateDigits(String[] s, String separator) οπου τα μαζευω απο την καθε θεση του πινακα σε ενα string για να απει ασε hashMap.

επειδη μετα θα τα συγκρινω το να τα εχω σε word object με συμφερει για να κανω comparaeTo και παει λεγοντας.Το θεμα ειναι μονο εκει που σου λεω.

Με εχεις?Ακου και αλλους τροπους.

kalos123
Δημοσιεύσεις: 5
Εγγραφή: 07 Μάιος 2015 17:11

ArrayList Object

Δημοσίευση από kalos123 » 07 Μάιος 2015 22:56

kalos123 έγραψε:
burnmind έγραψε:Αν δε δείξεις τον κώδικα που έχεις γράψει, μόνο υποθέσεις μπορούμε να κάνουμε. :)

Υποθέτω λοιπόν, πως κάπου αποθηκεύεις την λέξη ως String μέσα στην Word class σου. Οπότε, μπορείς απλά να φτιάξεις μια getter function που θα επιστρέφει την τιμή αυτής της μεταβλητής και να τη χρησιμοποιείς όπου θες (στη συγκεκριμένη περίπτωση για να κάνεις το split).
ok δες εδω

Κώδικας: Επιλογή όλων

 ArrayList<Word> wordList = new ArrayList<Word>&#40;&#41;; // το ArrayList

Διαβαζω αρχειο και τα στελνω σε ArrayList
try &#123;
            BufferedReader reader = new BufferedReader&#40;new FileReader&#40;filePath&#41;&#41;;
            String line = "";
            while &#40;&#40;line = reader.readLine&#40;&#41;&#41; != null&#41; &#123;
                addWord&#40;line&#41;;
            &#125;
            reader.close&#40;&#41;;
        &#125; catch &#40;Exception ex&#41; &#123;
            System.out.println&#40;"Exception&#58; " + ex.getMessage&#40;&#41;&#41;;
        &#125;
    &#125;

    void addWord&#40;String w&#41; &#123;
        Word nextWord = new Word&#40;w&#41;;
        wordList.add&#40;nextWord&#41;;

    &#125;

και εχω την κλαση  word εκει εχω 

private String word;
private int id;

 get/set και constructor  toString&#40;&#41;


και μετα 

    public String&#91;&#93; convertCharToNumber&#40;String w&#41; &#123;
        String digit&#91;&#93; = new String&#91;w.length&#40;&#41;&#93;;
        char&#91;&#93; c = w.toUpperCase&#40;&#41;.toCharArray&#40;&#41;;
        for &#40;int i = 0; i < c.length; i++&#41; &#123;
            char f = c&#91;i&#93;;
            switch &#40;f&#41; &#123;
                case 'E'&#58;
                    digit&#91;i&#93; = "0";
                    break;
                case 'F'&#58;      
                case 'R'&#58;       
                    digit&#91;i&#93; = "4";
.....
....

&#125;&#125;

και 

public String concatenateDigits&#40;String&#91;&#93; s, String separator&#41; &#123;
        String result = "";
        if &#40;s.length > 0&#41; &#123;
            result = s&#91;0&#93;;
            for &#40;int i = 1; i < s.length; i++&#41; &#123;
                result = result + separator + s&#91;i&#93;;
            &#125;
        &#125;
        System.out.println&#40;result&#41;;
        return result;
    &#125;


εαν τα βαλω σαν String στο ArrayList και τα στειλω στην switch θα παρω για την λεξη π.χ hello=90888 σε ψηφια μετα τα στελνω στο concatenateDigits(String[] s, String separator) και τα ξαναμαζευω σε ενα String παλι.
Αμα βαλω word στο ArrayList<word> αυτο δεν το εχω πως θα το στειλω στην switch να μου σπασει το String σε ψηφια να τα βαλω σε ενα πινακα και μετα να τα στειλω στηνoncatenateDigits(String[] s, String separator) να τα ξαναμαζεψω σαν String για να τα βαλω σε ενα hashMap.

Στην ουσια θελω να κανω για καθε word=hello......bye........seee.......* να τα μετατρεψω σε ψηφιο με την σειρα που θελω(καθε γραμμα με καποιο ψηφιο) να το αποθηκευσω σε πινακα (γιατι το εχω κανει chars οποτε τα μαζευω για καθε μηκος λεξεις που δινω σε πινακα και τα στελνω στην oncatenateDigits(String[] s, String separator) οπου τα μαζευω απο την καθε θεση του πινακα σε ενα string για να απει ασε hashMap.

επειδη μετα θα τα συγκρινω το να τα εχω σε word object με συμφερει για να κανω comparaeTo και παει λεγοντας.Το θεμα ειναι μονο εκει που σου λεω.

Με εχεις?Ακου και αλλους τροπους.
και επειδη το καψιμο με το νερο σβηνει αυτο που εκανα ηπια ενα κουβα νερο :pint: :pint: :pint: :pint: :pint: .Εσβησα και εβαλα στον Constructor μου το εξης convertCharToNumber( wοrd); και τρεχει η switch. :hammer: :hammer: :hammer: :hammer: :hammer: τωρα μενει η concat.

Πες μου και την ιδεα σου θα ηθλεα να την ακουσω.

Άβαταρ μέλους
burnmind
Script Master
Δημοσιεύσεις: 954
Εγγραφή: 26 Σεπ 2009 02:14
Τοποθεσία: UK
Επικοινωνία:

ArrayList Object

Δημοσίευση από burnmind » 08 Μάιος 2015 12:50

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

Αν έχεις κάποιο άλλο ζήτημα, το συζητάμε.

Απάντηση

Επιστροφή στο “Java”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης