如何将百分号添加到NSString

时间:2009-04-11 07:33:57

标签: objective-c nsstring string-literals

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

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

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

但它对我不起作用。

7 个答案:

答案 0 :(得分:920)

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

答案 1 :(得分:136)

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

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

此外,所有其他格式说明符都可以在Conceptual Strings Articles

找到

答案 2 :(得分:18)

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

NSLog(@"Test percentage \uFF05");

答案 3 :(得分:7)

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

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

答案 4 :(得分:6)

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

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

答案 5 :(得分:4)

uese跟随代码。

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

将输出:%Bhupi%

答案 6 :(得分: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]);

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