Как добавить знак процента в NSString

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

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

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

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

7 ответов

Решение

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

Код перехода для знака процента - "%%", поэтому ваш код будет выглядеть так

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

Кроме того, все другие спецификаторы формата можно найти в статьях Conceptual Strings.

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

NSLog(@"Test percentage \uFF05");

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

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

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

NSString *str = [NSString stringWithFormat:@"%@%@%@", @"%%", 
                 [textfield text], @"%%"]; 

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

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

будет выводить: % Bhupi%

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]);

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

Другие вопросы по тегам