提问



我想在一个数字后面的字符串中有一个百分号。这样的事:75%。


我怎么能这样做?我试过了:


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


但它对我不起作用。

最佳参考


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

其它参考1


百分号的转义码是%%,因此您的代码看起来像这样


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


此外,所有其他格式说明符都可以在Conceptual Strings文章[22]中找到

其它参考2


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


NSLog(@"Test percentage \uFF05");

其它参考3


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


所以回顾一下,格式化字符串时可以使用%%。但是,如果您的字符串是UILocalNotification的一部分,请使用%%%%\uFF05

其它参考4


似乎%%后跟%@NSString将会出现一些奇怪的代码
试试这个,这对我有用


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

其它参考5


uese代码。


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


将输出:%Bhupi%

其它参考6


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


感谢所有原始贡献者。希望这可以帮助。干杯!