Πώς να χωρίσετε string σε συμβολοσειρές για το iOS;

ψήφοι
80

Έλαβα ένα nsstring από το διακομιστή. Τώρα θέλω να χωριστεί στο υποσυμβολοσειρά χρειάζομαι. Πώς να χωρίσει το string;

Για παράδειγμα:

substring1: διαβάζεται από το δεύτερο χαρακτήρα στο 5ο χαρακτήρα

substring2: διαβάστε 10 χαρακτήρες από τον 6ο χαρακτήρα.

Δημοσιεύθηκε 27/02/2009 στις 10:17
πηγή χρήστη
Σε άλλες γλώσσες...                            


3 απαντήσεις

ψήφοι
211

Μπορείτε, επίσης, να χωρίσετε μια σειρά από συμβολοσειρά, χρησιμοποιώντας nSTRING του componentsSeparatedByString μέθοδο.

Παράδειγμα από τεκμηρίωση:

NSString *list = @"Norman, Stanley, Fletcher";
NSArray *listItems = [list componentsSeparatedByString:@", "];
Απαντήθηκε 27/02/2009 στις 10:43
πηγή χρήστη

ψήφοι
38

NSString έχει μερικές μεθόδους για το σκοπό αυτό:

[myString substringToIndex:index];
[myString substringFromIndex:index];
[myString substringWithRange:range];

Ελέγξτε την τεκμηρίωση για NSString για περισσότερες πληροφορίες.

Απαντήθηκε 27/02/2009 στις 10:20
πηγή χρήστη

ψήφοι
0

Έγραψα λίγο μέθοδος για να χωρίσει χορδές σε ένα συγκεκριμένο ποσό των μερών. Σημειώστε ότι υποστηρίζει μόνο και μόνο χαρακτήρες διαχωρισμού. Αλλά νομίζω ότι είναι ένας αποτελεσματικός τρόπος για να χωρίσει ένα NSString.

//split string into given number of parts
-(NSArray*)splitString:(NSString*)string withDelimiter:(NSString*)delimiter inParts:(int)parts{
    NSMutableArray* array = [NSMutableArray array];

    NSUInteger len = [string length];
    unichar buffer[len+1];

    //put separator in buffer
    unichar separator[1];
    [delimiter getCharacters:separator range:NSMakeRange(0, 1)];

    [string getCharacters:buffer range:NSMakeRange(0, len)];

    int startPosition = 0;
    int length = 0;
    for(int i = 0; i < len; i++) {

        //if array is parts-1 and the character was found add it to array
        if (buffer[i]==separator[0] && array.count < parts-1) {
            if (length>0) {
                [array addObject:[string substringWithRange:NSMakeRange(startPosition, length)]];

            }

            startPosition += length+1;
            length = 0;

            if (array.count >= parts-1) {
                break;
            }

        }else{
            length++;
        }

    }

    //add the last part of the string to the array
    [array addObject:[string substringFromIndex:startPosition]];

    return array;
}
Απαντήθηκε 13/12/2016 στις 10:24
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more