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.
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.
Réponses:
Le code pour le NSString
format de connexion en pourcentage est %%
. Cela est également vrai pour les formats NSLog()
et printf()
.
NSLog
traite son premier argument comme une chaîne de format, mais vous avez déjà formaté la chaîne à l'aide de stringWithFormat:
. Dis juste NSLog(@"%@%%", self.Ptextfield.text)
.
Le code d'échappement pour un signe de pourcentage est "%%", donc votre code ressemblerait à ceci
[NSString stringWithFormat:@"%d%%", someDigit];
En outre, tous les autres spécificateurs de format peuvent être trouvés dans les articles Conceptual Strings
Si cela aide dans certains cas, il est possible d'utiliser le caractère unicode:
NSLog(@"Test percentage \uFF05");
\uFF05
fonctionne pour moi quand il fait partie du NSString
in UILocalNotification
, non %%
. Merci!
La réponse acceptée ne fonctionne pas pour UILocalNotification. Pour une raison quelconque, %%%%
(signes de 4%) ou le caractère unicode ' \uFF05
' ne fonctionne que pour cela.
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
.
semble être %%
suivi d'un %@
, NSString
cela ira à des codes étranges essayez ceci et cela a fonctionné pour moi
NSString *str = [NSString stringWithFormat:@"%@%@%@", @"%%",
[textfield text], @"%%"];
iOS 9.2.1, Xcode 7.2.1, ARC activé
Vous pouvez toujours ajouter le «%» seul sans aucun autre spécificateur de format dans la chaîne que vous ajoutez, comme ceci ...
int test = 10;
NSString *stringTest = [NSString stringWithFormat:@"%d", test];
stringTest = [stringTest stringByAppendingString:@"%"];
NSLog(@"%@", stringTest);
Pour iOS7.0 +
Pour étendre la réponse à d'autres caractères susceptibles de provoquer un conflit, vous pouvez choisir d'utiliser:
- (NSString *)stringByAddingPercentEncodingWithAllowedCharacters:(NSCharacterSet *)allowedCharacters
Écrit é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 main courte:
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é!