Chcę mieć znak procentu w moim ciągu po cyfrze. Coś w tym stylu: 75%.
Jak mogę to zrobić? Próbowałem:
[NSString stringWithFormat:@"%d\%", someDigit];
Ale to nie działało dla mnie.
Chcę mieć znak procentu w moim ciągu po cyfrze. Coś w tym stylu: 75%.
Jak mogę to zrobić? Próbowałem:
[NSString stringWithFormat:@"%d\%", someDigit];
Ale to nie działało dla mnie.
Odpowiedzi:
Kod NSStringformatu procentowego logowania to %%. Odnosi się to również do NSLog()i printf()formatów.
NSLogtraktuje swój pierwszy argument jako ciąg formatu, ale ciąg został już sformatowany przy użyciu stringWithFormat:. Po prostu powiedz NSLog(@"%@%%", self.Ptextfield.text).
Kodem ucieczki dla znaku procentu jest „%%”, więc twój kod wyglądałby tak
[NSString stringWithFormat:@"%d%%", someDigit];
Ponadto wszystkie inne specyfikatory formatu można znaleźć w artykułach o ciągach koncepcyjnych
Jeśli to pomaga w niektórych przypadkach, można użyć znaku Unicode:
NSLog(@"Test percentage \uFF05");
\uFF05działa na mnie, gdy jest częścią NSStringIN UILocalNotification, nie %%. Dzięki!
Akceptowana odpowiedź nie działa dla UILocalNotification. Z jakiegoś powodu %%%%(znaki 4 procent) lub znak Unicode ”\uFF05 działają tylko w tym celu.
Podsumowując, podczas formatowania łańcucha możesz użyć %%. Jeśli jednak łańcuch jest częścią UILocalNotification, użyj %%%%lub \uFF05.
wygląda na to, że jeśli %%nastąpi po nim %@, NSStringprzejdę do niektórych dziwnych kodów, spróbuj tego i to zadziałało dla mnie
NSString *str = [NSString stringWithFormat:@"%@%@%@", @"%%",
[textfield text], @"%%"];
iOS 9.2.1, Xcode 7.2.1, obsługa ARC
Zawsze możesz dołączyć „%” samodzielnie, bez żadnych innych specyfikatorów formatu w dołączanym ciągu, na przykład…
int test = 10;
NSString *stringTest = [NSString stringWithFormat:@"%d", test];
stringTest = [stringTest stringByAppendingString:@"%"];
NSLog(@"%@", stringTest);
Dla iOS 7.0 +
Aby rozszerzyć odpowiedź na inne znaki, które mogą powodować konflikt, możesz użyć:
- (NSString *)stringByAddingPercentEncodingWithAllowedCharacters:(NSCharacterSet *)allowedCharacters
Zapisany krok po kroku wygląda następująco:
int test = 10;
NSString *stringTest = [NSString stringWithFormat:@"%d", test];
stringTest = [[stringTest stringByAppendingString:@"%"]
stringByAddingPercentEncodingWithAllowedCharacters:
[NSCharacterSet alphanumericCharacterSet]];
stringTest = [stringTest stringByRemovingPercentEncoding];
NSLog(@"percent value of test: %@", stringTest);
Lub krótka ręka:
NSLog(@"percent value of test: %@", [[[[NSString stringWithFormat:@"%d", test]
stringByAppendingString:@"%"] stringByAddingPercentEncodingWithAllowedCharacters:
[NSCharacterSet alphanumericCharacterSet]] stringByRemovingPercentEncoding]);
Dzięki wszystkim oryginalnym współpracownikom. Mam nadzieję że to pomoże. Twoje zdrowie!