Προς το περιεχόμενο

Πώς να κόψω string σε java


Kostasd_G21

Προτεινόμενες αναρτήσεις

Δημοσ.

Έχω για παράδειγμα ένα string τύπου:

 

Kostas|Papadopoulos|321432|543|3344\n

 

και θέλω κάθε φορά να κόβω από το πρώτο γράμμα κάθε λέξης εως την |

 

δηλαδή θέλω το string Kostas σε μια μεταβλητή, το string Papadopoulos σε αλλη μεταβλητη κτλ...

 

-Μπορείτε να με βοηθήσετε πώς να χρησιμοποιήσω την συνάρτηση substring μαζί με την indexOf για να υλοποιηθεί αυτό που θέλω?

Δημοσ.
Έχω για παράδειγμα ένα 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.

 

Ελπίζω να σε βοήθησα.

Δημοσ.

πρόσεξε όμως όταν αυτό που χρησιμοποιείς σαν διαχωριστικό είναι προβληματικό όπως εδώ το |

 

>
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();
}
}

Δημοσ.
πρόσεξε όμως όταν αυτό που χρησιμοποιείς σαν διαχωριστικό είναι προβληματικό όπως εδώ το |

 

>
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();
}
}

 

... Σωστή παρατήρηση!! ;)

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...