Quiero tener un signo de porcentaje en mi cadena después de un dígito. Algo como esto: 75%.
¿Cómo puedo hacer esto? Lo intenté:
[NSString stringWithFormat:@"%d\%", someDigit];
Pero no funcionó para mí.
Quiero tener un signo de porcentaje en mi cadena después de un dígito. Algo como esto: 75%.
¿Cómo puedo hacer esto? Lo intenté:
[NSString stringWithFormat:@"%d\%", someDigit];
Pero no funcionó para mí.
Respuestas:
El código para el NSString
formato de inicio de sesión por ciento es %%
. Esto también es cierto para NSLog()
y los printf()
formatos.
NSLog
trata su primer argumento como una cadena de formato, pero ya ha formateado la cadena usando stringWithFormat:
. Solo dilo NSLog(@"%@%%", self.Ptextfield.text)
.
El código de escape para un signo de porcentaje es "%%", por lo que su código se vería así
[NSString stringWithFormat:@"%d%%", someDigit];
Además, todos los demás especificadores de formato se pueden encontrar en Artículos de cadenas conceptuales
Si eso ayuda en algunos casos, es posible usar el carácter unicode:
NSLog(@"Test percentage \uFF05");
\uFF05
que funciona para mí cuando forma parte de la NSString
en UILocalNotification
, no %%
. ¡Gracias!
La respuesta aceptada no funciona para UILocalNotification. Por alguna razón, %%%%
(signos de 4 por ciento) o el carácter unicode ' \uFF05
' solo funcionan para esto.
Para recapitular, al formatear su cadena puede usar %%
. Sin embargo, si su cadena es parte de una UILocalNotification, use %%%%
o \uFF05
.
parece que si se %%
sigue con un %@
, NSString
iré a algunos códigos extraños, prueba esto y esto funcionó para mí
NSString *str = [NSString stringWithFormat:@"%@%@%@", @"%%",
[textfield text], @"%%"];
iOS 9.2.1, Xcode 7.2.1, ARC habilitado
Siempre puede agregar el '%' por sí mismo sin ningún otro especificador de formato en la cadena que está agregando, así ...
int test = 10;
NSString *stringTest = [NSString stringWithFormat:@"%d", test];
stringTest = [stringTest stringByAppendingString:@"%"];
NSLog(@"%@", stringTest);
Para iOS7.0 +
Para expandir la respuesta a otros caracteres que podrían causarle conflictos, puede optar por usar:
- (NSString *)stringByAddingPercentEncodingWithAllowedCharacters:(NSCharacterSet *)allowedCharacters
Escrito paso a paso se ve así:
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]);
Gracias a todos los colaboradores originales. Espero que esto ayude. ¡Salud!