Voglio avere un segno di percentuale nella mia stringa dopo una cifra. Qualcosa del genere: 75%.
Come posso farlo? Provai:
[NSString stringWithFormat:@"%d\%", someDigit];
Ma non ha funzionato per me.
Voglio avere un segno di percentuale nella mia stringa dopo una cifra. Qualcosa del genere: 75%.
Come posso farlo? Provai:
[NSString stringWithFormat:@"%d\%", someDigit];
Ma non ha funzionato per me.
Risposte:
Il codice per il NSStringformato di accesso percentuale è %%. Questo vale anche per NSLog()e printf()formati.
NSLogconsidera il suo primo argomento come una stringa di formato, ma hai già formattato la stringa usando stringWithFormat:. Basta dire NSLog(@"%@%%", self.Ptextfield.text).
Il codice di escape per un segno di percentuale è "%%", quindi il tuo codice sarebbe simile a questo
[NSString stringWithFormat:@"%d%%", someDigit];
Inoltre, tutti gli altri identificatori di formato sono disponibili negli articoli sulle stringhe concettuali
Se ciò aiuta in alcuni casi, è possibile utilizzare il carattere unicode:
NSLog(@"Test percentage \uFF05");
\uFF05funziona per me quando fa parte di NSStringin UILocalNotification, no %%. Grazie!
La risposta accettata non funziona per UILocalNotification. Per qualche motivo, %%%%(segni del 4 per cento) o il carattere unicode ' \uFF05' funzionano solo per questo.
Quindi, per ricapitolare, durante la formattazione della stringa è possibile utilizzare %%. Tuttavia, se la tua stringa fa parte di una UILocalNotification, usa %%%%o \uFF05.
sembra che se %%seguito da un %@, NSStringandranno ad alcuni strani codici provare questo e questo ha funzionato per me
NSString *str = [NSString stringWithFormat:@"%@%@%@", @"%%",
[textfield text], @"%%"];
iOS 9.2.1, Xcode 7.2.1, ARC abilitato
Puoi sempre aggiungere '%' da solo senza altri specificatori di formato nella stringa che stai aggiungendo, in questo modo ...
int test = 10;
NSString *stringTest = [NSString stringWithFormat:@"%d", test];
stringTest = [stringTest stringByAppendingString:@"%"];
NSLog(@"%@", stringTest);
Per iOS7.0 +
Per espandere la risposta ad altri personaggi che potrebbero causare conflitti, puoi scegliere di utilizzare:
- (NSString *)stringByAddingPercentEncodingWithAllowedCharacters:(NSCharacterSet *)allowedCharacters
Scritto passo dopo passo sembra così:
int test = 10;
NSString *stringTest = [NSString stringWithFormat:@"%d", test];
stringTest = [[stringTest stringByAppendingString:@"%"]
stringByAddingPercentEncodingWithAllowedCharacters:
[NSCharacterSet alphanumericCharacterSet]];
stringTest = [stringTest stringByRemovingPercentEncoding];
NSLog(@"percent value of test: %@", stringTest);
O mano corta:
NSLog(@"percent value of test: %@", [[[[NSString stringWithFormat:@"%d", test]
stringByAppendingString:@"%"] stringByAddingPercentEncodingWithAllowedCharacters:
[NSCharacterSet alphanumericCharacterSet]] stringByRemovingPercentEncoding]);
Grazie a tutti i collaboratori originali. Spero che sia di aiuto. Saluti!