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 NSStringformato de inicio de sesión por ciento es %%. Esto también es cierto para NSLog()y los printf()formatos.
NSLogtrata 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");
\uFF05que funciona para mí cuando forma parte de la NSStringen 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 %@, NSStringiré 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!