如何在NSString中添加百分号


Answers:


943

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


我正在尝试NSLog([NSString stringWithFormat:@“%@ %%”,self.Ptextfield.text]); 而输出是仅仅指刚在uitextfield.text
阿里

2
NSLog将其第一个参数视为格式字符串,但是您已经使用格式化了字符串stringWithFormat:。只是说NSLog(@"%@%%", self.Ptextfield.text)
rob mayoff

这不适用于UILocalNotification。请参阅stackoverflow.com/a/27971848/2446178
JRam13,2015年

139

百分号的转义代码为“ %%”,因此您的代码应如下所示

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

另外,所有其他格式说明符都可以在以下位置找到 Conceptual Strings Articles中


\%不起作用的原因是反斜杠是字符串文字的转义字符,因此在源代码中键入\%实际上会创建一个包含单个百分比字符的字符串。
gnasher729

17

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

NSLog(@"Test percentage \uFF05");

\uFF05当它是NSStringin的一部分时对我有用UILocalNotification,而不是%%。谢谢!
斯科特

4
这是用于中文或日文字符的“全角百分号”,与普通百分号有很大不同。
gnasher729 2014年

7

接受的答案不适用于UILocalNotification。出于某种原因,%%%%(4个百分号)或Unicode字符' \uFF05'仅对此有效。

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


6

似乎如果%%后面跟一个%@NSString将进入一些奇怪的代码,尝试此操作,这对我有用

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

4

uese以下代码。

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

将输出:%Bhupi%


0

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.