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


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


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.


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.