Η μέθοδος split() μπορεί να χρησιμοποιηθεί για τη διάσπαση συμβολοσειρών σε Java. Περιέχει μια παράμετρο για το διαχωριστικό και μια προαιρετική παράμετρο για τον αριθμό των υποσυμβολοσειρών. Υπάρχουν επίσης ορισμένες ιδιαιτερότητες που πρέπει να λάβετε υπόψη κατά τη χρήση της μεθόδου. Εξηγούμε όλα όσα πρέπει να γνωρίζετε.

Τι είναι split();

Οι συμβολοσειρές Java συνενώνουν χαρακτήρες, ψηφία και ειδικούς χαρακτήρες. Υπάρχουν ως αντικείμενα στην κλάση java.lang και δημιουργούνται και τροποποιούνται με την κλάση String. Στη γλώσσα προγραμματισμού Java, μπορείτε επίσης να διαχωρίσετε τις συμβολοσειρές σε διαφορετικές υποσυμβολοσειρές. Η συνάρτηση split() της Java χρησιμοποιείται για την εξαγωγή συγκεκριμένων τμημάτων από μια συμβολοσειρά ή για τον διαχωρισμό της σε μεμονωμένα μέρη. Παρακάτω θα σας δείξουμε με περισσότερες λεπτομέρειες τι μπορείτε να κάνετε με τη μέθοδο.

Όταν χωρίζετε μια συμβολοσειρά Java με τη συνάρτηση split(), θα λάβετε έναν πίνακα με πολλές συμβολοσειρές. Αυτός γίνεται η τιμή επιστροφής.

Ποια είναι η σύνταξη της Java split();

Η βασική σύνταξη της Java split() είναι πολύ απλή, αλλά μπορεί να επεκταθεί με προαιρετικές παραμέτρους. Ακολουθεί η βασική έκδοση:

String[] split(String regex)
java

Σε αυτό το παράδειγμα, το αποτέλεσμα θα έχει τη μορφή πίνακα. String είναι το αντικείμενο συμβολοσειράς. regex είναι η παράμετρος που χρησιμοποιείται για να καθοριστεί πού πρέπει να χωριστεί η συμβολοσειρά. Η παράμετρος δεν είναι υποχρεωτική, αλλά συνιστάται.

Η πρόσθετη προαιρετική παράμετρος limit σας επιτρέπει να καθορίσετε πόσες υποσειρές πρέπει να δημιουργηθούν. Η τιμή της είναι ένας ακέραιος αριθμός. Εάν είναι μηδέν ή αρνητική, όλες οι υποσειρές θα συμπεριληφθούν στην έξοδο. Εάν επιλέξετε μια θετική τιμή, θα λάβετε αυτόν τον αριθμό υποσειρών στην έξοδο. Με την πρόσθετη προαιρετική παράμετρο limit, η σύνταξη θα έχει την ακόλουθη μορφή:

String[] split(String regex, int limit)
java

Πώς να χρησιμοποιήσετε split() με κενό ως διαχωριστικό

Ας δούμε μερικά πρακτικά παραδείγματα. Πρώτα, θα δημιουργήσουμε μια συμβολοσειρά που περιέχει 4 λέξεις: «Αυτό είναι ένα παράδειγμα». Στη συνέχεια, θα χωρίσουμε τη συμβολοσειρά χρησιμοποιώντας split(). Ο πιο διαισθητικός τρόπος για να χωρίσουμε αυτή τη συμβολοσειρά είναι να χρησιμοποιήσουμε τα ήδη υπάρχοντα κενά μεταξύ των λέξεων. Δείτε πώς γίνεται αυτό στον κώδικα:

public class Main {
	public static void main(String[] args) {
		String x = "This is an example";
		String[] output = x.split(" ");
		for (String y : output) {
			System.out.println(y);
		}
	}
}
java

Σε αυτό το παράδειγμα, μια μεταβλητή συμβολοσειράς x αρχικοποιείται. Στη συνέχεια, η Java split() χρησιμοποιείται στη συμβολοσειρά. Η παράμετρος αναζητά κενά στη συμβολοσειρά και τη χωρίζει στα σημεία όπου τα βρίσκει. Το αποτέλεσμα αποθηκεύεται στη συνέχεια σε έναν πίνακα που ονομάζεται «output». Ο βρόχος for χρησιμοποιείται για την απαρίθμηση των υποσυμβολοσειρών. Η εντολή Java System.out.println μας δίνει το ακόλουθο αποτέλεσμα:

This
is
an
example
java

Πώς να χρησιμοποιείτε το κόμμα ως διαχωριστικό, με και χωρίς κενά

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

public class Main {
	public static void main(String[] args) {
		String x = "Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday";
		String[] output = x.split(",");
		for (String y : output) {
			System.out.println(y);
		}
	}
}
java

Σε αυτό το παράδειγμα, το αποτέλεσμα δεν είναι ακριβώς τέλειο:

Sunday
 Monday
 Tuesday
 Wednesday
 Thursday
 Friday
 Saturday
java

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

public class Main {
	public static void main(String[] args) {
		String x = "Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday";
		String[] output = x.split(", ");
		for (String y : output) {
			System.out.println(y);
		}
	}
}
java

Το αποτέλεσμα είναι τώρα πολύ καθαρότερο:

Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
java

Πώς να χωρίσετε τις συμβολοσειρές Java με ψηφία

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

public class Main {
	public static void main(String[] args) {
		String x = "194.518.552.1.17:6339";
		String[] output = x.split(":");
		for (String y : output) {
			System.out.println(y);
		}
	}
}
java

Ακολουθεί το αποτέλεσμα:

194.518.552.1.17
6339
java

Πώς να χρησιμοποιήσετε split() με την παράμετρο ορίου

Όταν χωρίζετε συμβολοσειρές Java με split(), μπορείτε επίσης να χρησιμοποιήσετε την προαιρετική παράμετρο limit. Η παράμετρος limit περιορίζει τον αριθμό των υποσυμβολοσειρών που δημιουργούνται. Υπάρχουν τρεις επιλογές εδώ: να της αποδώσετε μια τιμή μικρότερη από 0, 0 ή μεγαλύτερη από 0.

split() με όριο μικρότερο από 0

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

public class Main {
	public static void main(String[] args) {
		String x = "Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday ";
		String[] output = x.split(", ", -3);
		for (String y : output) {
			System.out.println(y);
		}
	}
}
java

Δεδομένου ότι υπάρχει ένα κενό μετά την τελευταία λέξη «Saturday», ο πίνακας θα τελειώνει με μια κενή συμβολοσειρά. Ακολουθεί το αποτέλεσμα:

Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
java

split() με όριο 0

Εάν ορίσετε την παράμετρο limit σε 0, η κανονική έκφραση θα χρησιμοποιηθεί και πάλι όσες φορές είναι δυνατόν. Το μήκος του πίνακα δεν περιορίζεται. Ωστόσο, εάν το τελευταίο στοιχείο είναι μια κενή συμβολοσειρά, δεν θα συμπεριληφθεί στον τελικό πίνακα.

public class Main {
	public static void main(String[] args) {
		String x = "Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday ";
		String[] output = x.split(", ", 0);
		for (String y : output) {
			System.out.println(y);
		}
	}
}
java

Το αποτέλεσμα μοιάζει με το παραπάνω, αλλά χωρίς την τελική συμβολοσειρά:

Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
java

split() με όριο μεγαλύτερο από 0

Η διαφορά γίνεται πιο εμφανής όταν ορίσετε ένα όριο μεγαλύτερο από 0. Τότε θα καθορίσει πόσες υποσειρές μπορούν να εξάγονται.

public class Main {
	public static void main(String[] args) {
		String x = "Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday ";
		String[] output = x.split(", ", 3);
		for (String y : output) {
			System.out.println(y);
		}
	}
}
java

Στη συνέχεια, θα λάβουμε ένα αποτέλεσμα που διαφέρει σημαντικά από τα παραπάνω:

Sunday
Monday
Tuesday, Wednesday, Thursday, Friday, Saturday
java
Go to Main Menu