Я хочу, чтобы в моей строке был знак процента после цифры. Как то так: 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]);
Спасибо всем оригинальным авторам. Надеюсь это поможет. Ура!