come ottenere i primi tre caratteri di un NSString?


Risposte:


263
 mystr=[mystr substringToIndex:3];

Assicurati che la tua stringa abbia almeno 3 canali .. o bloccherà l'app.

Ecco alcuni altri collegamenti per controllare le operazioni di NSsting ...

link1

Link2

Apple Link


21
nota: errore "Intervallo o indice fuori limite" possibile se non controlli la lunghezza per assicurarti che contenga 3 o più caratteri
Ryan Bavetta

Sono molto nuovo e ho cercato questa domanda per provare a rispondere alla mia, ma questa risposta non eliminerà i primi 3 caratteri? Uso la stessa sintassi per RIMUOVERE il numero di caratteri che hai impostato. Probabilmente mi sbaglio, ma ho pensato di dover almeno chiedere.

@RyanBavetta E se la stringa con cui lo stai facendo fosse ad esempio una stringa di data che il tuo codice ha creato in precedenza e quindi sai ESATTAMENTE quanti caratteri ha. Quindi sicuramente non è necessario preoccuparsi di un'istruzione if per verificare quanto è lungo, giusto ??
Supertecnoboff

1
@GameLoading Ho aggiunto del codice alla tua risposta in modo che non si blocchi per i principianti. Spero non ti dispiaccia :)
iYoung

Usa semplicemente mystr = [mystr substringToIndex: MIN (mystr.length, 3)] per evitare arresti anomali :-)
LaborEtArs

62

Per prima cosa, devi assicurarti che la stringa contenga almeno 3 caratteri:

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

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

substringToIndex: genererà un'eccezione se l'indice fornito è oltre la fine della stringa.


5
In alternativa, racchiudi un blocco @ try / @ catch. Tuttavia, questa è una risposta migliore dell'altra.
Alan Zeino

2

il modo giusto è:

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

substringToIndex di NSString sta indicizzando per unità di codice, emoji prende due unità di codice.

assicurati di controllare tu stesso l'indice.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.