数字の後に文字列にパーセント記号を付けたい。こんな感じ:75%。
どうすればこれを実現できますか。私は試した:
[NSString stringWithFormat:@"%d\%", someDigit];
しかし、私にとってはうまくいきませんでした。
NSString
形式のパーセント記号のコードは%%
です。これはNSLog()
およびprintf()
フォーマットにも当てはまります。
パーセント記号のエスケープコードは "%%"なので、コードは次のようになります。
[NSString stringWithFormat:@"%d%%", someDigit];
また、他のすべてのフォーマット指定子は、 概念的な文字列の記事 にあります。
それが場合によっては助けになる場合、ユニコード文字を使用することは可能です:
NSLog(@"Test percentage \uFF05");
受け入れられた答えはUILocalNotificationのために働きません。何らかの理由で、%%%%
(4パーセント記号)またはUnicode文字「\uFF05
」のみがこれに有効です。
要約すると、あなたの文字列をフォーマットするときは%%
を使うことができます。ただし、文字列がUILocalNotificationの一部である場合は、%%%%
または\uFF05
を使用してください。
%%
の後に%@
が続いた場合、NSString
はこれを試してみると奇妙なコードになるでしょう。
NSString *str = [NSString stringWithFormat:@"%@%@%@", @"%%",
[textfield text], @"%%"];
次のコードに従ってください。
NSString *searchText = @"Bhupi"
NSString *formatedSearchText = [NSString stringWithFormat:@"%%%@%%",searchText];
出力されます:%Bhupi%
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]);
すべてのオリジナルの貢献者に感謝します。お役に立てれば。乾杯!