Come dividere stringa in sottostringhe su iOS?

voti
80

Ho ricevuto una NSString dal server. Ora voglio dividerlo in sottostringa ho bisogno. Come dividere la stringa?

Per esempio:

substring1: leggere dal secondo carattere al 5 carattere

substring2: leggere 10 caratteri dal 6 ° carattere.

È pubblicato 27/02/2009 alle 10:17
fonte dall'utente
In altre lingue...                            


3 risposte

voti
211

Si può anche dividere una stringa da una stringa, utilizzando di nSTRING componentsSeparatedByString metodo.

Esempio da documentazione:

NSString *list = @"Norman, Stanley, Fletcher";
NSArray *listItems = [list componentsSeparatedByString:@", "];
Risposto il 27/02/2009 a 10:43
fonte dall'utente

voti
38

NSString ha alcuni metodi per questo:

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

Controllare la documentazione per NSString per ulteriori informazioni.

Risposto il 27/02/2009 a 10:20
fonte dall'utente

voti
0

Ho scritto un po 'di metodo per dividere le stringhe in una determinata quantità di pezzi. Si noti che supporta solo singoli caratteri separatori. Ma penso che sia un modo efficace per dividere un 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;
}
Risposto il 13/12/2016 a 10:24
fonte dall'utente

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