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í.

¿Fue útil?

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!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top