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.

Foi útil?

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!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top