关于C#:如何向nsstring添加百分号

How to add percent sign to NSString

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

我该怎么做?我试过:

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

但这对我不起作用。


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


百分号的转义码是"%%",因此您的代码应该如下所示

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

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


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

1
NSLog(@"Test percentage \uFF05");


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

因此,在格式化字符串时,您可以使用%%。但是,如果字符串是uilocalnotification的一部分,请使用%%%%\uFF05


如果%%后面跟着%@的话,NSString就会出现一些奇怪的代码。试试这个,这个对我有用

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

使用以下代码。

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

将输出:%bhupi%


iOS 9.2.1,xcode 7.2.1,启用ARC

您总是可以自己附加"%",而不在要附加的字符串中附加任何其他格式说明符,就像这样…

1
2
3
4
5
int test = 10;

NSString *stringTest = [NSString stringWithFormat:@"%d", test];
stringTest = [stringTest stringByAppendingString:@"%"];
NSLog(@"%@", stringTest);

IOS7.0+

要将答案扩展到可能导致冲突的其他字符,您可以选择使用:

- (NSString *)stringByAddingPercentEncodingWithAllowedCharacters:(NSCharacterSet *)allowedCharacters

一步一步地写出来,就像这样:

1
2
3
4
5
6
7
8
9
int test = 10;

NSString *stringTest = [NSString stringWithFormat:@"%d", test];
stringTest = [[stringTest stringByAppendingString:@"%"]
             stringByAddingPercentEncodingWithAllowedCharacters:
             [NSCharacterSet alphanumericCharacterSet]];
stringTest = [stringTest stringByRemovingPercentEncoding];

NSLog(@"percent value of test: %@", stringTest);

或短手:

1
2
3
NSLog(@"percent value of test: %@", [[[[NSString stringWithFormat:@"%d", test]
stringByAppendingString:@"%"] stringByAddingPercentEncodingWithAllowedCharacters:
[NSCharacterSet alphanumericCharacterSet]] stringByRemovingPercentEncoding]);

感谢所有最初的贡献者。希望这有帮助。干杯!