Question Comment ajouter un signe de pourcentage à NSString


Je veux avoir un signe de pourcentage dans ma chaîne après un chiffre. Quelque chose comme ça: 75%.

Comment puis-je faire cela? J'ai essayé:

[NSString stringWithFormat:@"%d\%", someDigit];

Mais ça n'a pas marché pour moi.


435
2018-04-11 07:33


origine


Réponses:


Le code pour le signe de pourcentage NSString le format est %%. Ceci est également vrai pour NSLog() et printf() formats.


899
2018-04-11 07:48



Le code d'échappement pour un signe de pourcentage est "%%", donc votre code devrait ressembler à ceci

[NSString stringWithFormat:@"%d%%", someDigit];

En outre, tous les autres spécificateurs de format peuvent être trouvés à Articles de cordes conceptuelles


132
2018-04-11 08:03



Si cela aide dans certains cas, il est possible d'utiliser le caractère unicode:

NSLog(@"Test percentage \uFF05");

18
2018-02-12 15:06



La réponse acceptée ne fonctionne pas pour UILocalNotification. Pour certaines raisons, %%%% (4 pour cent de signes) ou le caractère unicode '\uFF05"Ne travaille que pour ça.

Donc, pour récapituler, lors du formatage de votre chaîne, vous pouvez utiliser %%. Cependant, si votre chaîne fait partie d'une UILocalNotification, utilisez %%%% ou \uFF05.


7
2018-01-15 19:52



semble si %% suivi d'un %@, la NSString ira à des codes étranges Essayez ceci et cela a fonctionné pour moi

NSString *str = [NSString stringWithFormat:@"%@%@%@", @"%%", 
                 [textfield text], @"%%"]; 

6
2018-06-13 03:14



uese code suivant.

 NSString *searchText = @"Bhupi"
 NSString *formatedSearchText = [NSString stringWithFormat:@"%%%@%%",searchText];

va sortir: % Bhupi%


4
2018-04-14 11:56



iOS 9.2.1, Xcode 7.2.1, ARC activé

Vous pouvez toujours ajouter le '%' tout seul sans aucun autre spécificateur de format dans la chaîne que vous ajoutez, comme ça ...

int test = 10;

NSString *stringTest = [NSString stringWithFormat:@"%d", test];
stringTest = [stringTest stringByAppendingString:@"%"];
NSLog(@"%@", stringTest);

Pour iOS7.0 +

Pour étendre la réponse aux autres caractères qui pourraient vous causer des conflits, vous pouvez choisir d'utiliser:

- (NSString *)stringByAddingPercentEncodingWithAllowedCharacters:(NSCharacterSet *)allowedCharacters

Ecrit étape par étape, il ressemble à ceci:

int test = 10;

NSString *stringTest = [NSString stringWithFormat:@"%d", test];
stringTest = [[stringTest stringByAppendingString:@"%"] 
             stringByAddingPercentEncodingWithAllowedCharacters:
             [NSCharacterSet alphanumericCharacterSet]];
stringTest = [stringTest stringByRemovingPercentEncoding];

NSLog(@"percent value of test: %@", stringTest);

Ou courte main:

NSLog(@"percent value of test: %@", [[[[NSString stringWithFormat:@"%d", test] 
stringByAppendingString:@"%"] stringByAddingPercentEncodingWithAllowedCharacters:
[NSCharacterSet alphanumericCharacterSet]] stringByRemovingPercentEncoding]);

Merci à tous les contributeurs originaux. J'espère que cela t'aides. À votre santé!


0
2018-02-09 17:30