Quero ter um sinal de porcentagem na minha string após um dígito. Algo assim: 75%.
Como posso fazer isso? Eu tentei:
[NSString stringWithFormat:@"%d\%", someDigit];
Mas não funcionou para mim.
Quero ter um sinal de porcentagem na minha string após um dígito. Algo assim: 75%.
Como posso fazer isso? Eu tentei:
[NSString stringWithFormat:@"%d\%", someDigit];
Mas não funcionou para mim.
Respostas:
O código para o NSStringformato de sinal de porcentagem é %%. Isso também é válido para NSLog()e printf()formatos.
NSLogtrata seu primeiro argumento como uma sequência de formato, mas você já formatou a sequência usando stringWithFormat:. Apenas diga NSLog(@"%@%%", self.Ptextfield.text).
O código de escape para um sinal de porcentagem é "%%", portanto, seu código ficaria assim
[NSString stringWithFormat:@"%d%%", someDigit];
Além disso, todos os outros especificadores de formato podem ser encontrados em Artigos sobre cadeias conceituais
Se isso ajudar em alguns casos, é possível usar o caractere unicode:
NSLog(@"Test percentage \uFF05");
\uFF05funciona para mim quando faz parte do NSStringin UILocalNotification, não %%. Obrigado!
A resposta aceita não funciona para UILocalNotification. Por alguma razão, %%%%(sinais de 4%) ou o caractere unicode ' \uFF05' só funcionam para isso.
Então, para recapitular, ao formatar sua string, você pode usar %%. No entanto, se sua string fizer parte de uma UILocalNotification, use %%%%ou \uFF05.
parece que se %%seguido com um %@, o NSStringvai para alguns códigos estranhos tente isso e isso funcionou para mim
NSString *str = [NSString stringWithFormat:@"%@%@%@", @"%%",
[textfield text], @"%%"];
iOS 9.2.1, Xcode 7.2.1, ARC ativado
Você sempre pode anexar o '%' sozinho, sem outros especificadores de formato na string que está anexando, assim ...
int test = 10;
NSString *stringTest = [NSString stringWithFormat:@"%d", test];
stringTest = [stringTest stringByAppendingString:@"%"];
NSLog(@"%@", stringTest);
Para iOS7.0 +
Para expandir a resposta para outros caracteres que podem causar conflitos, você pode optar por usar:
- (NSString *)stringByAddingPercentEncodingWithAllowedCharacters:(NSCharacterSet *)allowedCharacters
Escrito passo a passo, fica assim:
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 colaboradores originais. Espero que isto ajude. Felicidades!