Как мне получить доступ к n-ым символам в строке NSString? - PullRequest
2 голосов
/ 29 сентября 2011

Я получил HEX цвета в виде строк NSS и хочу проверить, содержит ли конкретная строка символ F в первом, третьем или пятом символе, но игнорировать его, если он содержит символ F во втором, четвертом или шестом символе.

Это для определения, является ли рассматриваемый цвет светлым или нет.

Я искал это, но нашел только ответы относительно того, как найти диапазоны символов.

Ответы [ 3 ]

3 голосов
/ 29 сентября 2011

Вы можете использовать символ CharacterAtIndex NSString.

char fifthChar = [yourString characterAtIndex:5];
2 голосов
/ 29 сентября 2011

Как говорит @Daniel Pereira, вы можете использовать метод -[NSString characterAtIndex:] для проверки символов.

NSString *string = /* Assume this exists */;
if ([string characterAtIndex: 1] == 'F' || \
    [string characterAtIndex: 3] == 'F' || \
    [string characterAtIndex: 5] == 'F')
{
    // F at odd-indexed character
}
else
{
    // Do other stuff here...
}
0 голосов
/ 29 сентября 2011

Вы пытались использовать characterAtIndex? Вы можете использовать метод, чтобы извлечь строку из первого, третьего и пятого символа (конечно, по одному за раз) и сравнить ее с F.

Обратите внимание, что все ваши цвета HEX должны быть 6 символов. Иногда вы можете представить цвет только с тремя шестнадцатеричными значениями (например, FFF все равно даст вам белый цвет в HTML). Поэтому, если ваш цвет представлен только тремя символами, и вы пытаетесь получить символ с индексом 5, метод сгенерирует исключение «вне диапазона».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...