文字列の数字の後にパーセント記号を入れたい。このようなもの:75%。
どうすればこれを行うことができますか?私は試した:
[NSString stringWithFormat:@"%d\%", someDigit];
しかし、それは私にはうまくいきませんでした。
文字列の数字の後にパーセント記号を入れたい。このようなもの:75%。
どうすればこれを行うことができますか?私は試した:
[NSString stringWithFormat:@"%d\%", someDigit];
しかし、それは私にはうまくいきませんでした。
回答:
パーセント記号のNSString
形式のコードは%%
です。これはNSLog()
とprintf()
フォーマットにも当てはまります。
NSLog
は最初の引数をフォーマット文字列として扱いますが、を使用してすでに文字列をフォーマットしていますstringWithFormat:
。と言うだけNSLog(@"%@%%", self.Ptextfield.text)
。
パーセント記号のエスケープコードは「%%」なので、コードは次のようになります。
[NSString stringWithFormat:@"%d%%", someDigit];
また、他のすべてのフォーマット指定子は、Conceptual Strings Articlesにあります。
それがいくつかのケースで役立つ場合、ユニコード文字を使用することが可能です:
NSLog(@"Test percentage \uFF05");
\uFF05
それはの一部であるとき私の作品NSString
ではUILocalNotification
、ありません%%
。ありがとう!
場合ようだ%%
と、その後%@
、NSString
いくつかの奇妙なコードになりますが、これを試してみて、これは私のために働いていました
NSString *str = [NSString stringWithFormat:@"%@%@%@", @"%%",
[textfield text], @"%%"];
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]);
すべての元の貢献者に感謝します。お役に立てれば。乾杯!