як отримати перші три символи NSString?


Відповіді:


263
 mystr=[mystr substringToIndex:3];

Будьте впевнені, що у вашій стрічці є принаймні 3 год.

Ось деякі інші посилання для перевірки операцій NSsting ...

Посилання1

Посилання2

Apple Link


21
Примітка: Помилка "Діапазон чи індекс поза межами" можлива, якщо ви не перевіряєте довжину, щоб переконатися, що вона має 3 та більше символів
Райан Баветта

Я зовсім новачок, і я шукав це питання, щоб спробувати відповісти на своє, але чи не відповість ця відповідь першими 3 символами? Я використовую той самий синтаксис, щоб Зняти кількість заданих вами символів. Я, мабуть, помиляюся, але подумав, що мені слід хоча б запитати.

@RyanBavetta Що робити, якщо рядок, з яким ви це робите, це, наприклад, рядок дати, на якому був зроблений ваш код раніше, і ви точно знаєте, скільки символів у нього є. Тоді напевно вам не потрібно зациклюватися на операторі if, щоб перевірити, наскільки це довго, правда ??
Supertecnoboff

1
@GameLoading Я додав код у вашу відповідь, щоб він не вийшов з ладу для початківців. Сподіваюсь, ви не заперечуєте :)
iYoung

Просто використовуйте mystr = [mystr substringToIndex: MIN (mystr.length, 3)], щоб уникнути збоїв :-)
LaborEtArs

62

По-перше, ви повинні переконатися, що рядок містить щонайменше 3 символи:

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

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

substringToIndex: викине виняток, якщо вказаний вами індекс знаходиться поза кінцем рядка.


5
Або загорніть у блок @ try / @ catch. Тим не менш, це краща відповідь, ніж інші.
Алан Зейно

2

правильний шлях:

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

substringToIndex NSString - це індексація за кодовою одиницею, emoji приймає дві кодові одиниці.

не забудьте перевірити індекс самостійно.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.