Como adicionar cento sinal para NSString
-
09-09-2019 - |
Pergunta
Eu quero ter um sinal de porcentagem na minha corda depois de um dígito. Algo parecido com isto:. 75%
Como posso ter feito isto? Eu tentei:
[NSString stringWithFormat:@"%d\%", someDigit];
Mas isso não funcionou para mim.
Solução
O código para sinal de porcentagem no formato NSString
é %%
. Isto também é verdade para os formatos NSLog()
e printf()
.
Outras dicas
O código de escape para um sinal de porcentagem é "%%", para que o seu código ficaria assim
[NSString stringWithFormat:@"%d%%", someDigit];
Além disso, todos os outros especificadores de formato podem ser encontradas em Conceitual cordas artigos
Se isso ajuda em alguns casos, é possível usar o caractere unicode:
NSLog(@"Test percentage \uFF05");
A resposta aceita não funciona para UILocalNotification. Por alguma razão, %%%%
(4 sinais de percentagem) ou o caractere Unicode '\uFF05
' único trabalho para isso.
Então, para recapitular, ao formatar a seqüência que você pode usar %%
. No entanto, se a cadeia é parte de um UILocalNotification, %%%%
uso ou \uFF05
.
parece se %%
seguiu com uma %@
, o NSString
vai para alguns códigos estranhos
tente isso e isso funcionou para mim
NSString *str = [NSString stringWithFormat:@"%@%@%@", @"%%",
[textfield text], @"%%"];
uese seguinte código.
NSString *searchText = @"Bhupi"
NSString *formatedSearchText = [NSString stringWithFormat:@"%%%@%%",searchText];
saída será: % Bhupi%
iOS 9.2.1, 7.2.1 Xcode, ARC habilitado
Você pode sempre acrescentar o '%', por si só, sem quaisquer outros especificadores de formato na cadeia de caracteres que você está anexando, como assim ...
int test = 10;
NSString *stringTest = [NSString stringWithFormat:@"%d", test];
stringTest = [stringTest stringByAppendingString:@"%"];
NSLog(@"%@", stringTest);
Para iOS7.0 +
Para expandir a resposta a outros personagens que pode causar conflito que você pode optar por utilizar:
- (NSString *)stringByAddingPercentEncodingWithAllowedCharacters:(NSCharacterSet *)allowedCharacters
Escrito, passo a passo, parece que isso:
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 mão curta:
NSLog(@"percent value of test: %@", [[[[NSString stringWithFormat:@"%d", test]
stringByAppendingString:@"%"] stringByAddingPercentEncodingWithAllowedCharacters:
[NSCharacterSet alphanumericCharacterSet]] stringByRemovingPercentEncoding]);
Obrigado a todos os contribuintes. Espero que isto ajude. Felicidades!