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 NSString
formato di accesso percentuale è %%
. Questo vale anche per NSLog()
e printf()
formati.
NSLog
considera 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");
\uFF05
funziona per me quando fa parte di NSString
in 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 %@
, NSString
andranno 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!