Как добавить знак процента в NSString - PullRequest
443 голосов
/ 11 апреля 2009

Я хочу, чтобы в моей строке был знак процента после цифры. Примерно так: 75%.

Как я могу это сделать? Я попробовал:

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

Но у меня это не сработало.

Ответы [ 7 ]

920 голосов
/ 11 апреля 2009

Код знака процента в формате NSString: %%. Это также верно для NSLog() и printf() форматов.

136 голосов
/ 11 апреля 2009

Экранирующим кодом для знака процента является "%%", поэтому ваш код будет выглядеть так

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

Кроме того, все другие спецификаторы формата можно найти по адресу Концептуальные строки Статьи

18 голосов
/ 12 февраля 2013

Если это помогает в некоторых случаях, можно использовать символ Unicode:

NSLog(@"Test percentage \uFF05");
7 голосов
/ 15 января 2015

Принятый ответ не работает для UILocalNotification. По какой-то причине %%%% (4 знака процента) или символ Unicode '\uFF05' работают только для этого.

Итак, подведем итог: при форматировании строки вы можете использовать %%. Однако, если ваша строка является частью UILocalNotification, используйте %%%% или \uFF05.

6 голосов
/ 13 июня 2013

кажется, если %% сопровождается %@, NSString перейдет к некоторым странным кодам попробуйте это, и это сработало для меня

NSString *str = [NSString stringWithFormat:@"%@%@%@", @"%%", 
                 [textfield text], @"%%"]; 
4 голосов
/ 14 апреля 2013

UES следующий код.

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

выдаст: % Bhupi%

0 голосов
/ 09 февраля 2016

iOS 9.2.1, Xcode 7.2.1, ARC включена

Вы всегда можете добавить «%» самостоятельно без каких-либо других спецификаторов формата в строке, которую вы добавляете, например ...

int test = 10;

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

Для iOS7.0 +

Чтобы расширить ответ на другие символы, которые могут вызвать конфликт, вы можете использовать:

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

Записано шаг за шагом это выглядит так:

int test = 10;

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

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

Или короткая рука:

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

Спасибо всем оригинальным авторам. Надеюсь это поможет. Ура!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...