NSString में प्रतिशत चिन्ह कैसे जोड़ें


456

मैं एक अंक के बाद मेरे स्ट्रिंग में एक प्रतिशत चिह्न रखना चाहता हूं। कुछ इस तरह: 75%।

मैंने यह कैसे किया है? मैंने कोशिश की:

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

लेकिन यह मेरे लिए काम नहीं किया।

जवाबों:


943

NSStringप्रारूप में प्रतिशत चिह्न के लिए कोड है %%। यह प्रारूप NSLog()और printf()प्रारूप के लिए भी सही है।


मैं NSLog ([NSString stringWithFormat: @ "% @ %%", self.Ptextfield.text]) की कोशिश कर रहा हूं; और आउटपुट uitextfield.text jsut है
अली

2
NSLogइसके पहले तर्क को एक प्रारूप स्ट्रिंग के रूप में मानता है, लेकिन आपने पहले ही स्ट्रिंग का उपयोग करके प्रारूपित किया है stringWithFormat:। बस बोलो NSLog(@"%@%%", self.Ptextfield.text)
लूट मय

यह UILocalNotification के लिए काम नहीं करता है। Stackoverflow.com/a/27971848/2446178 देखें ।
JRam13

139

प्रतिशत चिह्न के लिए एस्केप कोड "%%" है, इसलिए आपका कोड इस तरह दिखेगा

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

इसके अलावा, सभी अन्य प्रारूप विनिर्देशक वैचारिक स्ट्रिंग्स लेख में पाए जा सकते हैं


और यही कारण है कि \% काम नहीं करता है, यह है कि बैकस्लैश स्ट्रिंग शाब्दिकों के लिए भागने का चरित्र है, इसलिए आपके स्रोत कोड में \% टाइपिंग वास्तव में एक एकल प्रतिशत चरित्र वाला स्ट्रिंग बनाता है।
gnasher729

17

यदि यह कुछ मामलों में मदद करता है, तो यूनिकोड वर्ण का उपयोग करना संभव है:

NSLog(@"Test percentage \uFF05");

\uFF05मेरे लिए काम करता है जब यह का हिस्सा NSStringहै UILocalNotification, नहीं %%। धन्यवाद!
स्कॉट

4
यह चीनी या जापानी पात्रों के साथ उपयोग के लिए एक "पूर्ण चौड़ाई प्रतिशत संकेत" है, जो एक साधारण प्रतिशत चरित्र से बहुत अलग है।
gnasher729

7

स्वीकृत उत्तर UILocalNotification के लिए काम नहीं करता है। किसी कारण से, %%%%(4 प्रतिशत संकेत) या यूनिकोड वर्ण ' \uFF05' केवल इसके लिए काम करते हैं।

तो पुन: उपयोग करने के लिए, जब आपके स्ट्रिंग का प्रारूपण आप उपयोग कर सकते हैं %%। हालाँकि, यदि आपका स्ट्रिंग एक UILocalNotification का हिस्सा है, तो उपयोग करें %%%%या \uFF05


6

लगता है अगर %%एक के साथ पीछा किया %@, NSStringकुछ अजीब कोड के लिए जाना जाएगा यह कोशिश की और यह मेरे लिए काम किया

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

4

uese निम्नलिखित कोड।

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

उत्पादन होगा: % भुपी%


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

सभी मूल योगदानकर्ताओं का धन्यवाद। उम्मीद है की यह मदद करेगा। चीयर्स!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.