¿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

Juego cargándose
fuente
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.

Dreamlax
fuente
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.

pico
fuente