como obter os primeiros três caracteres de um NSString?

104

Como posso retornar os três primeiros caracteres de um NSString?

cgossain
fonte

Respostas:

263
 mystr=[mystr substringToIndex:3];

Certifique-se de que sua string tenha pelo menos 3 canais, oe travará o aplicativo.

Aqui estão alguns outros links para verificar as operações NSsting ...

Link1

Link2

Apple Link

Carregando o jogo
fonte
21
observação: erro de "intervalo ou índice fora dos limites" possível se você não verificar o comprimento para se certificar de que tem 3 ou mais caracteres
Ryan Bavetta
Sou muito novo e procurei essa pergunta para tentar responder a minha própria, mas essa resposta não eliminará os 3 primeiros caracteres? Eu uso a mesma sintaxe para REMOVER o número de caracteres que você definiu. Provavelmente estou errado, mas achei que deveria pelo menos perguntar.
@RyanBavetta E se a string com a qual você está fazendo isso for, por exemplo, uma string de data que seu código criou anteriormente e, portanto, você sabe EXATAMENTE quantos caracteres ela possui. Então certamente você não precisa se preocupar com uma declaração if para verificar quanto tempo ela tem, certo ??
Supertecnoboff
1
@GameLoading Eu adicionei um código à sua resposta para que não trave para iniciantes. Espero que você não se importe :)
iYoung
Basta usar mystr = [mystr substringToIndex: MIN (mystr.length, 3)] para evitar travamentos :-)
LaborEtArs
62

Primeiro, você deve se certificar de que a string contém pelo menos 3 caracteres:

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

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

substringToIndex: lançará uma exceção se o índice fornecido estiver além do final da string.

dreamlax
fonte
5
Ou envolva em um bloco @ try / @ catch. No entanto, esta é uma resposta melhor do que a outra.
Alan Zeino
2

o caminho certo é:

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

substringToIndex de NSString está indexando por unidade de código, emoji leva duas unidades de código.

certifique-se de verificar o índice você mesmo.

pico
fonte