ฉันต้องการมีเครื่องหมายเปอร์เซ็นต์ในสายอักขระของฉันหลังจากตัวเลข บางสิ่งเช่นนี้: 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
หากวิธีนี้ช่วยได้ในบางกรณีคุณสามารถใช้อักขระ Unicode ได้:
NSLog(@"Test percentage \uFF05");
\uFF05
การทำงานสำหรับฉันเมื่อมันเป็นส่วนหนึ่งของNSString
ในไม่UILocalNotification
%%
ขอบคุณ!
คำตอบที่ยอมรับใช้ไม่ได้กับ 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]);
ขอขอบคุณผู้มีส่วนร่วมต้นฉบับทั้งหมด หวังว่านี่จะช่วยได้ ไชโย!