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

Я хочу иметь знак процента в моей строке после цифры. Что-то вроде этого: 75%.

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

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

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

Ответ 1

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

Ответ 2

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

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

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

Ответ 3

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

NSLog(@"Test percentage \uFF05");

Ответ 4

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

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

Ответ 5

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

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

Ответ 6

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

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

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

Ответ 7

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

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