如何添加百分比符号到NSString

我想在数字后面加一个百分号。大概是这样:75%。

我该怎么做呢?我试着:

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

但这对我不起作用。

135967 次浏览

NSString格式百分号的代码是%%。对于NSLog()printf()格式也是如此。

百分号的转义代码是“%%”,所以代码看起来像这样

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

此外,所有其他格式说明符都可以在概念字符串中找到

如果在某些情况下有帮助,可以使用unicode字符:

NSLog(@"Test percentage \uFF05");

请使用以下代码。

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

将输出:% Bhupi %

似乎如果%%后面跟着一个%@NSString将变成一些奇怪的代码 试试这个,这对我有用

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

接受的答案对UILocalNotification不起作用。出于某种原因,%%%%(4%符号)或unicode字符'\uFF05'仅适用于此。

所以概括一下,当格式化字符串时,你可以使用%%。然而,如果你的字符串是UILocalNotification的一部分,使用%%%%\uFF05

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

感谢所有的原创贡献者。希望这能有所帮助。干杯!