Cómo agregar el signo de porcentaje a NSString
-
09-09-2019 - |
Pregunta
Quiero tener un signo de porcentaje en mi cadena después de un dígito. Algo como esto:. 75%
¿Cómo puedo tener este hecho? Probé:
[NSString stringWithFormat:@"%d\%", someDigit];
Pero no funcionó para mí.
Solución
El código de muestra del por ciento en formato NSString
es %%
. Esto también es cierto para los formatos NSLog()
y printf()
.
Otros consejos
El código de escape para un signo de porcentaje es "%%", por lo que el código se vería así
[NSString stringWithFormat:@"%d%%", someDigit];
Además, todos los otros especificadores de formato se pueden encontrar en conceptual Cuerdas Artículos
Si eso ayuda en algunos casos, es posible utilizar el carácter Unicode:
NSLog(@"Test percentage \uFF05");
La respuesta aceptada no funciona para UILocalNotification. Por alguna razón, %%%%
(4 signos de porcentaje) o el carácter Unicode '\uFF05
' sólo funciona para esto.
Así que para recapitular, al dar formato a la cadena puede usar %%
. Sin embargo, si su secuencia es parte de un UILocalNotification, utilice %%%%
o \uFF05
.
Parece que si %%
siguió con un %@
, la NSString
irá a algunos códigos extraños
probar esto y esto funcionó para mí
NSString *str = [NSString stringWithFormat:@"%@%@%@", @"%%",
[textfield text], @"%%"];
uese siguiente código.
NSString *searchText = @"Bhupi"
NSString *formatedSearchText = [NSString stringWithFormat:@"%%%@%%",searchText];
salida voluntad: % Bhupi%
iOS 9.2.1, Xcode 7.2.1, ARC habilitado
Siempre se puede añadir el '%' por sí mismo, sin ningún otro especificadores de formato en la cadena que está anexando, al igual que ...
int test = 10;
NSString *stringTest = [NSString stringWithFormat:@"%d", test];
stringTest = [stringTest stringByAppendingString:@"%"];
NSLog(@"%@", stringTest);
Para iOS7.0 +
Para ampliar la respuesta a otros personajes que podrían causar que entren en conflicto puede optar por utilizar:
- (NSString *)stringByAddingPercentEncodingWithAllowedCharacters:(NSCharacterSet *)allowedCharacters
Escrito cabo paso a paso que tiene este aspecto:
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 abreviada:
NSLog(@"percent value of test: %@", [[[[NSString stringWithFormat:@"%d", test]
stringByAppendingString:@"%"] stringByAddingPercentEncodingWithAllowedCharacters:
[NSCharacterSet alphanumericCharacterSet]] stringByRemovingPercentEncoding]);
Gracias a todos los contribuyentes originales. Espero que esto ayude. Saludos!