j'ai besoin de supprimer les espaces de fin de chaîne. Comment puis-je le faire? Exemple : si la chaîne est "Bonjour", elle doit devenir un "Bonjour" Merci
Réponses
Trop de publicités?Ici, vous allez...
-(NSString *)removeEndSpaceFrom:(NSString *)strtoremove{
NSUInteger location = 0;
unichar charBuffer[[strtoremove length]];
[strtoremove getCharacters:charBuffer];
int i = 0;
for ( i = [strtoremove length]; i >0; i--){
if (![[NSCharacterSet whitespaceCharacterSet] characterIsMember:charBuffer[i - 1]]){
break;
}
}
return [strtoremove substringWithRange:NSMakeRange(location, i - location)];
}
Alors maintenant, il vous suffit d'appeler ..... Supossing vous avez une chaîne qui a des espaces dans le front et les espaces à la fin. et vous voulez juste pour supprimer les espaces à la fin. L'appeler comme cela.
NSString *onetwothree = @" TestString ";
NSString *ResultString;
ResultString = [self removeEndSpaceFrom:onetwothree];
ResultString aura pas d'espaces à la fin.
NSString *trimmedString = [string stringByTrimmingCharactersInSet:
[NSCharacterSet whitespaceAndNewlineCharacterSet]];
//for remove whitespace and new line character
NSString *trimmedString = [string stringByTrimmingCharactersInSet: [NSCharacterSet punctuationCharacterSet]];
//for remove characters in punctuation category
si bien CharacterSet vérifier vous-même selon vos besoins
Je suis venu avec cette fonction, qui, fondamentalement, se comporte de façon similaire à un dans la réponse d'Alex:
-(NSString*)trimLastSpace:(NSString*)str{
int i = str.length - 1;
for (; i >= 0 && [str characterAtIndex:i] == ' '; i--);
return [str substringToIndex:i + 1];
}
whitespaceCharacterSet
en plus de l'espace lui-même comprend également le caractère de tabulation, qui dans mon cas ne pouvait pas se manifester. Donc je suppose qu'une simple comparaison pourrait suffire.