¿Cómo obtener los primeros tres caracteres de un NSString?


Respuestas:


263
 mystr=[mystr substringToIndex:3];

Asegúrese de que su cadena tenga al menos 3 canales .. oe, bloqueará la aplicación.

Aquí hay algunos otros enlaces para verificar las operaciones de NSsting ...

Enlace1

Enlace2

Enlace de Apple


21
nota: es posible que se produzca un error "Rango o índice fuera de los límites" si no comprueba la longitud para asegurarse de que tenga 3 o más caracteres
Ryan Bavetta

Soy muy nuevo y busqué esta pregunta para tratar de responder la mía, pero ¿esta respuesta no eliminará los primeros 3 caracteres? Utilizo la misma sintaxis para ELIMINAR la cantidad de caracteres que estableciste. Probablemente me equivoque, pero pensé que al menos debería preguntar.

@RyanBavetta ¿Qué pasa si la cadena con la que está haciendo esto es, por ejemplo, una cadena de fecha que su código creó anteriormente y para que sepa EXACTAMENTE cuántos caracteres tiene? Entonces seguramente no necesita molestarse con una declaración if para verificar cuánto tiempo es, ¿verdad?
Supertecnoboff

1
@GameLoading He agregado un código a su respuesta para que no se bloquee para los principiantes. Espero que no te
importe

Simplemente use mystr = [mystr substringToIndex: MIN (mystr.length, 3)] para evitar bloqueos :-)
LaborEtArs

62

Primero, debe asegurarse de que la cadena contenga al menos 3 caracteres:

NSString *fullString = /* obtain from somewhere */;
NSString *prefix = nil;

if ([fullString length] >= 3)
    prefix = [fullString substringToIndex:3];
else
    prefix = fullString;

substringToIndex: arrojará una excepción si el índice que proporciona está más allá del final de la cadena.


5
O envuelva en un bloque @ try / @ catch. No obstante, esta es una respuesta mejor que la otra.
Alan Zeino

2

la forma correcta es:

text = [text substringToIndex:NSMaxRange([text rangeOfComposedCharacterSequenceAtIndex:2])];

substringToIndex de NSString está indexando por unidad de código, emoji toma dos unidades de código.

asegúrese de comprobar el índice usted mismo.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.