J'ai un NSString
supprimer les caractères du début d'une NSString
NSString *data = @"abcdefghi";
mais je veux que les données soient les "defghi"
Que puis-je faire pour le changer?
J'ai un NSString
supprimer les caractères du début d'une NSString
NSString *data = @"abcdefghi";
mais je veux que les données soient les "defghi"
Que puis-je faire pour le changer?
Vous pouvez faire:
NSMutableString *data = [NSMutableString stringWithString:@"abcdefghi"];
[data deleteCharactersInRange:NSMakeRange(0, 3)];
Ce utilise NSMutableString qui vous permet de supprimer et ajouter des caractères/chaînes à lui-même.
La méthode utilisée ici est deleteCharactersInRange cette opération supprime les lettres dans le NSRange
, dans ce cas, la gamme a un location
de 0
, de sorte qu'il commence au début, et un length
de 3
, il supprime 3 lettres.
NSString est immuable. Vous devez utiliser NSMutableString sauf si vous voulez créer une nouvelle chaîne. Regardez la méthode deleteCharactersInRange.
[data substringFromIndex:2]
Ceci retournera une nouvelle chaîne avec les caractères jusqu'à l'index (2) écrêté.
cela ne supprimera pas les caractères de cette chaîne, mais créera une nouvelle chaîne. bien que cela soit suffisant pour de nombreux cas :-) – taskinoor
Aussi, '[data substringFromIndex: 3]' est ce que l'auteur veut, depuis la [documentation] (http://developer.apple.com/mac/library/documentation/cocoa /reference/Foundation/Classes/NSString_Class/Reference/NSString.html#jumpTo_124) indique que l'index donné est inclus dans le résultat. – dreamlax
Une alternative serait NSScanner si vous ne connaissez pas l'emplacement exact de vos caractères que vous souhaitez supprimer: Apple Guide to NSScanners. Vous pouvez aussi regarder le reste du guide, car il décrit très bien ce que vous pouvez faire avec une chaîne dans Obj-C.
Vous ne pouvez pas initialiser un 'NSMutableString' comme ça, vous devez utiliser' [NSMutableString stringWithString: @ "abcdefghi"] '. – dreamlax
Merci, je viens de le réaliser. Edited ma question. – Joshua