Kostasd_G21 Δημοσ. 31 Οκτωβρίου 2010 Δημοσ. 31 Οκτωβρίου 2010 Έχω για παράδειγμα ένα string τύπου: Kostas|Papadopoulos|321432|543|3344\n και θέλω κάθε φορά να κόβω από το πρώτο γράμμα κάθε λέξης εως την | δηλαδή θέλω το string Kostas σε μια μεταβλητή, το string Papadopoulos σε αλλη μεταβλητη κτλ... -Μπορείτε να με βοηθήσετε πώς να χρησιμοποιήσω την συνάρτηση substring μαζί με την indexOf για να υλοποιηθεί αυτό που θέλω?
nspyrou Δημοσ. 31 Οκτωβρίου 2010 Δημοσ. 31 Οκτωβρίου 2010 Έχω για παράδειγμα ένα string τύπου: Kostas|Papadopoulos|321432|543|3344\n και θέλω κάθε φορά να κόβω από το πρώτο γράμμα κάθε λέξης εως την | δηλαδή θέλω το string Kostas σε μια μεταβλητή, το string Papadopoulos σε αλλη μεταβλητη κτλ... -Μπορείτε να με βοηθήσετε πώς να χρησιμοποιήσω την συνάρτηση substring μαζί με την indexOf για να υλοποιηθεί αυτό που θέλω? Δεν χρειάζεσαι ούτε τη substring ούτε την indexOf ... Τα delimited strings μπορείς να τα σπάσεις εύκολα όπως παρακάτω: >/* String to split. */ String str = "one-two-three"; String[] temp; /* delimiter */ String delimiter = "-"; temp = str.split(delimiter); /* print substrings */ for(int i =0; i < temp.length ; i++) System.out.println(temp[i]); Δεν θα σε βολέψει να έχεις διαφορετική μεταβλητή για κάθε τιμή που υπάρχει στο string γιατί σε περίπτωση που δεν γνωρίζεις το σύνολο των πεδίων που υπάρχουν στο delimited string δεν θα μπορείς να γνωρίζεις και πόσες μεταβλητές χρειάζεσαι. Αυτή τη δουλειά την κάνεις εύκολα με ένα πίνακα. Και η split σου επιστρέφει το κομμένο string σε ένα μονοδιάστατο πίνακα που μπορείς να κάνεις enumerate με ένα for(). Το μήκος του πίνακα (τα πόσα elements εμπεριέχονται μέσα στον πίνακα) σου επιστρέφεται με το temp.length. Ελπίζω να σε βοήθησα.
Kostasd_G21 Δημοσ. 31 Οκτωβρίου 2010 Μέλος Δημοσ. 31 Οκτωβρίου 2010 Ευχαριστώ παιδιά πολύτιμη η βοήθεια σας
virxen75 Δημοσ. 31 Οκτωβρίου 2010 Δημοσ. 31 Οκτωβρίου 2010 πρόσεξε όμως όταν αυτό που χρησιμοποιείς σαν διαχωριστικό είναι προβληματικό όπως εδώ το | > public class Splitter{ public Splitter(){ String test="Kostas|Papadopoulos|321432|543|3344"; String splitted[]=test.split("\\|");//<-------------δες εδώ for (int i=0;i<splitted.length;i++) System.out.println(splitted[i]); } public static void main (String args[]){ new Splitter(); } }
nspyrou Δημοσ. 31 Οκτωβρίου 2010 Δημοσ. 31 Οκτωβρίου 2010 πρόσεξε όμως όταν αυτό που χρησιμοποιείς σαν διαχωριστικό είναι προβληματικό όπως εδώ το | > public class Splitter{ public Splitter(){ String test="Kostas|Papadopoulos|321432|543|3344"; String splitted[]=test.split("\\|");//<-------------δες εδώ for (int i=0;i<splitted.length;i++) System.out.println(splitted[i]); } public static void main (String args[]){ new Splitter(); } } ... Σωστή παρατήρηση!!
Kostasd_G21 Δημοσ. 31 Οκτωβρίου 2010 Μέλος Δημοσ. 31 Οκτωβρίου 2010 Οκ ευχαριστώ για την παρατήρηση,για το λόγο αυτό τα διαχώρισα με μια παύλα -
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.