سؤال

أريد أن أحصل على علامة نسبة في سلسلة بلدي بعد رقم. شيء مثل هذا: 75٪.

كيف يمكنني القيام بذلك؟ حاولت:

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

لكنه لم يعمل بالنسبة لي.

هل كانت مفيدة؟

المحلول

رمز النسبة المئوية تسجيل الدخول NSString التنسيق هو %%. وبعد هذا صحيح أيضا ل NSLog() و printf() التنسيقات.

نصائح أخرى

رمز الهروب للحصول على علامة النسبة المئوية هو "٪٪"، لذلك سيبدو الكود الخاص بك

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

أيضا، يمكن العثور على جميع محطات التنسيق الأخرى في السلاسل المفاهيمية المواد

إذا كان ذلك يساعد في بعض الحالات، فمن الممكن استخدام حرف Unicode:

NSLog(@"Test percentage \uFF05");

الإجابة المقبولة لا تعمل من أجل uilocalnotification. لسبب ما، %%%% (4 في المئة علامات) أو حرف يونيكود "\uFF05العمل فقط لهذا.

حتى لا تمصلا، عند تنسيق السلسلة التي قد تستخدمها %%. وبعد ومع ذلك، إذا كانت السلسلة الخاصة بك جزء من uilocalnotification، فاستخدم %%%% أو \uFF05.

يبدو إذا %% يتبع مع %@, ، ال NSString سوف تذهب إلى بعض الرموز الغريبة جرب هذا وهذا يعمل بالنسبة لي

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

uese التعليمة البرمجية التالية.

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

سوف الإخراج: ٪ bhupi٪

iOS 9.2.1، XCode 7.2.1، تم تمكين القوس

يمكنك دائما إلحاق "٪" بحد ذاته دون أي محددات تنسيق أخرى في السلسلة التي تلدها، مثل ...

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

شكرا لجميع المساهمين الأصليين. أتمنى أن يساعدك هذا. هتافات!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top