Я хочу, чтобы в моей строке был знак процента после цифры. Как то так: 75%.
Как я могу это сделать? Я старался:
[NSString stringWithFormat:@"%d\%", someDigit];
Но это не сработало для меня.
Я хочу, чтобы в моей строке был знак процента после цифры. Как то так: 75%.
Как я могу это сделать? Я старался:
[NSString stringWithFormat:@"%d\%", someDigit];
Но это не сработало для меня.
Ответы:
Код для знака процента в NSString
формате %%
. Это касается NSLog()
и printf()
форматов.
NSLog
обрабатывает свой первый аргумент как строку формата, но вы уже отформатировали строку, используя stringWithFormat:
. Просто скажи NSLog(@"%@%%", self.Ptextfield.text)
.
Код перехода для знака процента - «%%», поэтому ваш код будет выглядеть так
[NSString stringWithFormat:@"%d%%", someDigit];
Кроме того, все другие спецификаторы формата можно найти в статьях Conceptual Strings.
Если это помогает в некоторых случаях, можно использовать символ Unicode:
NSLog(@"Test percentage \uFF05");
\uFF05
работает для меня , когда он является частью NSString
дюйма UILocalNotification
, а не %%
. Спасибо!
Принятый ответ не работает для UILocalNotification. По какой-то причине %%%%
(4-процентные знаки) или символ Unicode ' \uFF05
' работают только для этого.
Напомним, что при форматировании вашей строки вы можете использовать %%
. Однако, если ваша строка является частью UILocalNotification, используйте %%%%
или \uFF05
.
Кажется, если %%
следовать с %@
, то NSString
пойдет на некоторые странные коды, попробуйте это, и это сработало для меня
NSString *str = [NSString stringWithFormat:@"%@%@%@", @"%%",
[textfield text], @"%%"];
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]);
Спасибо всем оригинальным авторам. Надеюсь это поможет. Ура!