Tôi muốn có một dấu phần trăm trong chuỗi của tôi sau một chữ số. Một cái gì đó như thế này: 75%.
Làm thế nào tôi có thể làm điều này? Tôi đã thử:
[NSString stringWithFormat:@"%d\%", someDigit];
Nhưng nó không làm việc cho tôi.
Tôi muốn có một dấu phần trăm trong chuỗi của tôi sau một chữ số. Một cái gì đó như thế này: 75%.
Làm thế nào tôi có thể làm điều này? Tôi đã thử:
[NSString stringWithFormat:@"%d\%", someDigit];
Nhưng nó không làm việc cho tôi.
Câu trả lời:
Mã cho NSString
định dạng phần trăm đăng nhập là %%
. Điều này cũng đúng cho NSLog()
và printf()
định dạng.
NSLog
coi đối số đầu tiên của nó là một chuỗi định dạng, nhưng bạn đã định dạng chuỗi bằng cách sử dụng stringWithFormat:
. Chỉ cần nói NSLog(@"%@%%", self.Ptextfield.text)
.
Mã thoát cho dấu phần trăm là "%%", vì vậy mã của bạn sẽ trông như thế này
[NSString stringWithFormat:@"%d%%", someDigit];
Ngoài ra, tất cả các công cụ định dạng định dạng khác có thể được tìm thấy tại Bài viết về chuỗi khái niệm
Nếu điều đó có ích trong một số trường hợp, có thể sử dụng ký tự unicode:
NSLog(@"Test percentage \uFF05");
\uFF05
làm việc cho tôi khi nó là một phần của NSString
trong UILocalNotification
, không %%
. Cảm ơn!
Câu trả lời được chấp nhận không hoạt động đối với UILocalNotification. Vì một số lý do, %%%%
(4 dấu hiệu phần trăm) hoặc ký tự unicode ' \uFF05
' chỉ hoạt động cho việc này.
Vì vậy, để tóm tắt lại, khi định dạng chuỗi của bạn, bạn có thể sử dụng %%
. Tuy nhiên, nếu chuỗi của bạn là một phần của UILocalNotification, hãy sử dụng %%%%
hoặc \uFF05
.
Dường như nếu %%
theo sau với một %@
, NSString
sẽ đi đến một số mã lạ thử điều này và điều này làm việc cho tôi
NSString *str = [NSString stringWithFormat:@"%@%@%@", @"%%",
[textfield text], @"%%"];
iOS 9.2.1, Xcode 7.2.1, bật ARC
Bạn luôn có thể tự thêm '%' mà không cần bất kỳ trình xác định định dạng nào khác trong chuỗi bạn đang nối, như vậy ...
int test = 10;
NSString *stringTest = [NSString stringWithFormat:@"%d", test];
stringTest = [stringTest stringByAppendingString:@"%"];
NSLog(@"%@", stringTest);
Dành cho iOS7.0 +
Để mở rộng câu trả lời cho các nhân vật khác có thể khiến bạn xung đột, bạn có thể chọn sử dụng:
- (NSString *)stringByAddingPercentEncodingWithAllowedCharacters:(NSCharacterSet *)allowedCharacters
Viết ra từng bước nó trông như thế này:
int test = 10;
NSString *stringTest = [NSString stringWithFormat:@"%d", test];
stringTest = [[stringTest stringByAppendingString:@"%"]
stringByAddingPercentEncodingWithAllowedCharacters:
[NSCharacterSet alphanumericCharacterSet]];
stringTest = [stringTest stringByRemovingPercentEncoding];
NSLog(@"percent value of test: %@", stringTest);
Hoặc tay ngắn:
NSLog(@"percent value of test: %@", [[[[NSString stringWithFormat:@"%d", test]
stringByAppendingString:@"%"] stringByAddingPercentEncodingWithAllowedCharacters:
[NSCharacterSet alphanumericCharacterSet]] stringByRemovingPercentEncoding]);
Cảm ơn tất cả những người đóng góp ban đầu. Hi vọng điêu nay co ich. Chúc mừng!