2010-12-01 6 views
-2

Question rapide. J'ai besoin de diviser un NSString, s'il contient une certaine sous-chaîne. Quelqu'un peut-il me montrer un exemple de comment faire cela?Diviser un NSString

// good string 
string = RESULT: 123.23 

// bad string (has no result prefix) 
string = asldkfjasdlkfj 

if(string has "RESULT: " in it) 
{ 
    string2 = (something that returns the 123.23 part) 
} 

Merci beaucoup!

+4

Qu'avez-vous essayé? Cela ne semble rien, puisque vous n'écrivez même pas Objective-C mais juste un pseudo-langage. Les docs Apple Developer sont une excellente ressource, merci de les utiliser. – Joost

+0

Honnêtement, je ne l'ai pas essayé quoi que ce soit, je viens de recevoir un rapport de bogue sur un de mes applications iPhone, et avoir un peu plus au travail, j'espérais j'obtenir un extrait rapide quand je cours, je peux la maison soumettre un patch Apple dès que possible. – Josh

Répondre

2

Bon alors, deux méthodes rapides:

-[NSString hasPrefix:] 
-[NSString substringFromIndex:] 

Cependant, ne pas oublier de traiter les cas invalides.

2
- (NSString *)splitString { 
    NSRange range = [myString rangeOfString:@"RESULT: "]; 
    if (range.location != NSNotFound) { 
     return [myString substringFromIndex:NSMaxRange(range)]; 
    } 
    return nil; 
} 

Edité pour retourner le suffixe, préfixe non

+0

'-substringFromIndex:';) – Joost

+3

substringFromIndex: range.location + range.length;) – Prcela

+0

Oh désolé, je pensais que vous vouliez le préfixe, mais vous avez raison, c'était le suffixe qui a été demandé. Je vais éditer ma réponse. –

6

La meilleure façon de diviser un NSString est:

- (NSArray *)componentsSeparatedByString:(NSString *)separator; 

J'espère que vous l'avez trouvé utile

+0

Homme, cette question a plus d'un an! – Josh

+2

Ouais! Je sais, mais je suppose que c'est la solution que vous cherchez. N'est-ce pas? –