Διαχωρισμός μιας συμβολοσειράς από μια άλλη συμβολοσειρά σε C#

Έχω χρησιμοποιήσει τη μέθοδο Split() για να χωρίζω συμβολοσειρές, αλλά αυτό φαίνεται να λειτουργεί μόνο αν χωρίζετε μια συμβολοσειρά με βάση έναν χαρακτήρα. Υπάρχει τρόπος να διαχωρίσετε μια string, με μια άλλη συμβολοσειρά να είναι η παράμετρος διαχωρισμού από?

Προσπάθησα να μετατρέψω το splitter σε πίνακα χαρακτήρων, χωρίς επιτυχία.

Με άλλα λόγια, θα ήθελα να διαχωρίσω τη "συμβολοσειρά":

THExxQUICKxxBROWNxxFOX

με το xx, και να επιστρέψω έναν πίνακα με τιμές:

THE, QUICK, BROWN, FOX

Λύση

Για να διαχωρίσετε μια συμβολοσειρά θα πρέπει να χρησιμοποιήσετε την υπερφόρτωση string array overload.

string data = "THExxQUICKxxBROWNxxFOX";

return data.Split(new string[] { "xx" }, StringSplitOptions.None);
Σχόλια (14)

Υπάρχει μια υπερφόρτωση του Split που δέχεται συμβολοσειρές.

"THExxQUICKxxBROWNxxFOX".Split(new [] { "xx" }, StringSplitOptions.None);

Μπορείτε να χρησιμοποιήσετε οποιαδήποτε από αυτές τις StringSplitOptions

  • None - Η τιμή επιστροφής περιλαμβάνει πίνακα στοιχεία που περιέχουν ένα κενό αλφαριθμητικό
  • RemoveEmptyEntries - Η τιμή επιστροφής δεν περιλαμβάνει στοιχεία πίνακα που περιέχουν κενή συμβολοσειρά

Έτσι, αν η συμβολοσειρά είναι "THExxQUICKxxxxxxxxBROWNxxFOX", το StringSplitOptions.None θα επιστρέψει μια κενή εγγραφή στον πίνακα για το τμήμα "xxxx" ενώ το StringSplitOptions.RemoveEmptyEntries όχι.

Σχόλια (0)
Regex.Split(string, "xx")

είναι ο τρόπος που το κάνω συνήθως. Φυσικά θα χρειαστείτε ένα

using System.Text.RegularExpressions;

αλλά και πάλι χρειάζομαι αυτή τη βιβλιοθήκη όλη την ώρα.

Σχόλια (3)