Случайные прописные - строчные - PullRequest
1 голос
/ 15 августа 2011

Я бы хотел, чтобы строка меняла буквы в нижний или верхний регистр случайным образом (в Xcode). например: "пример" в "ExaMpLe" или "eXAMPle" или ExAmPlE "или что-то подобное, как это случайно ... горячий я могу решить это?

спасибо

Ответы [ 3 ]

2 голосов
/ 15 августа 2011

Вы можете использовать методы -uppercaseString и -lowercaseString для подстрок или использовать функции toupper() и tolower() для символов.Нет способа просто отфильтровать строку;вам нужно использовать либо массив символов NSMutableString или C.

См. этот вопрос , чтобы узнать, как получить случайное логическое значение, которое вы можете использовать для определения, является лисимвол должен быть в верхнем или нижнем регистре.

0 голосов
/ 15 августа 2011

NSString имеет метод lowercaseString и uppercaseString.Вы можете перебирать символы в строке как последовательность подстрок, используя некоторый случайный источник для вызова соответствующего нижнего / верхнего регистра для каждого из них, собирая результат.Что-то вроде ...

NSMutableString result = [NSMutableString string];
for (NSUInteger i = 0; i < [myString length]; i++)
{
  NSString *substring = [myString substringWithRange:NSMakeRange(i, 1)];
  [result appendString:(rand() % 2) ? [substring lowercaseString]
                                    : [substring uppercaseString]];
}

Вы можете предпочесть источник энтропии лучше, чем rand, но это подойдет для примера (не забудьте заполнить его, если вы используете этот случай как есть).Если строки большие, вы можете сделать это на месте на NSMutableString.

0 голосов
/ 15 августа 2011

Вы можете разбить слово на массив букв и зациклить его, используя случайное число, чтобы определить регистр. После зацикливания массива просто соедините буквы обратно вместе с помощью NSMutableString.

NSString имела uppercaseStringи методы lowercaseString, которые вы можете использовать.

...