NSStringにパーセント記号を追加する方法


456

文字列の数字の後にパーセント記号を入れたい。このようなもの:75%。

どうすればこれを行うことができますか?私は試した:

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

しかし、それは私にはうまくいきませんでした。

回答:


943

パーセント記号のNSString形式のコードは%%です。これはNSLog()printf()フォーマットにも当てはまります。


NSLog([NSString stringWithFormat:@ "%@ %%"、self.Ptextfield.text]);を試行しています。出力はjsut the uitextfield.text
Ali

2
NSLogは最初の引数をフォーマット文字列として扱いますが、を使用してすでに文字列をフォーマットしていますstringWithFormat:。と言うだけNSLog(@"%@%%", self.Ptextfield.text)
rob mayoff 2013年

これはUILocalNotificationでは機能しません。stackoverflow.com/a/27971848/2446178を参照してください。
JRam13

139

パーセント記号のエスケープコードは「%%」なので、コードは次のようになります。

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

また、他のすべてのフォーマット指定子は、Conceptual Strings Articlesにあります。


また、\%が機能しない理由は、円記号が文字列リテラルのエスケープ文字であるため、ソースコードに\%と入力すると、実際には1つのパーセント文字を含む文字列が作成されます。
gnasher729 2014

17

それがいくつかのケースで役立つ場合、ユニコード文字を使用することが可能です:

NSLog(@"Test percentage \uFF05");

\uFF05それはの一部であるとき私の作品NSStringではUILocalNotification、ありません%%。ありがとう!
スコット

4
これは、中国語または日本語の文字で使用する「全角パーセント記号」であり、通常のパーセント文字とは大きく異なります。
gnasher729 2014

7

受け入れられた回答はUILocalNotificationでは機能しません。何らかの理由で、%%%%(4パーセント記号)またはUnicode文字 ' \uFF05'は、これに対してのみ機能します。

要約すると、文字列をフォーマットするときにを使用できます%%。ただし、文字列がUILocalNotificationの一部である場合は、%%%%またはを使用します\uFF05


6

場合ようだ%%と、その後%@NSStringいくつかの奇妙なコードになりますが、これを試してみて、これは私のために働いていました

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

4

次のコードを使用してください。

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

すべての元の貢献者に感謝します。お役に立てれば。乾杯!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.