bagaimana cara mendapatkan tiga karakter pertama dari NSString?


Jawaban:


263
 mystr=[mystr substringToIndex:3];

Pastikan string Anda memiliki minimal 3 ch .. oe itu akan merusak aplikasi.

Berikut beberapa tautan lain untuk memeriksa operasi NSsting ...

Tautan1

Tautan2

Tautan Apple


21
catatan: Kesalahan "Rentang atau indeks di luar batas" mungkin terjadi jika Anda tidak memeriksa panjangnya untuk memastikan panjangnya 3 karakter atau lebih
Ryan Bavetta

Saya sangat baru dan saya mencari pertanyaan ini untuk mencoba menjawab pertanyaan saya sendiri, tetapi bukankah jawaban ini akan menghilangkan 3 karakter pertama? Saya menggunakan sintaks yang sama untuk MENGHAPUS jumlah karakter yang Anda tetapkan. Saya mungkin salah, tapi saya pikir setidaknya saya harus bertanya.

@RyanBavetta Bagaimana jika string yang Anda lakukan ini adalah misalnya string tanggal yang kode Anda buat sebelumnya sehingga Anda tahu PERSIS berapa banyak karakter yang dimilikinya. Maka tentunya Anda tidak perlu repot dengan if statement untuk mengecek berapa panjangnya kan ??
Supertecnoboff

1
@GameLoading Saya telah menambahkan beberapa kode ke jawaban Anda sehingga tidak macet untuk pemula. Harap Anda tidak keberatan :)
iYoung

Cukup gunakan mystr = [mystr substringToIndex: MIN (mystr.length, 3)] untuk menghindari crash :-)
LaborEtArs

62

Pertama, Anda harus memastikan bahwa string berisi setidaknya 3 karakter:

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

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

substringToIndex: akan memunculkan pengecualian jika indeks yang Anda berikan melebihi akhir string.


5
Atau, bungkus dengan blok @ try / @ catch. Meskipun demikian, ini adalah jawaban yang lebih baik dari yang lain.
Alan Zeino

2

cara yang benar adalah:

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

substringToIndex dari NSString mengindeks berdasarkan unit kode, emoji mengambil dua unit kode.

pastikan periksa sendiri indeksnya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.