随机大写 - 小写

时间:2011-08-14 22:29:29

标签: objective-c xcode uppercase lowercase

我想让一个字符串随机地将字母改为小写或大写(在Xcode中)。 例如:“示例”到“ExaMpLe”或“eXAMPle”或ExAmPlE“或其他类似的随机.. 我可以解决这个问题吗?

感谢

3 个答案:

答案 0 :(得分:2)

您可以在子字符串上使用-uppercaseString-lowercaseString方法,也可以在字符上使用toupper()tolower()函数。没有办法简单地过滤字符串;你会想要使用NSMutableString或C数组字符。

有关如何获取随机布尔值的信息,请参阅this question,您可以使用该值来确定字符是大写还是小写。

答案 1 :(得分:0)

你可以把这个单词分成一个字母数组,然后使用一个随机数循环来确定大小写,在循环数组之后,只需使用NSMutableString将字母重新粘在一起。

NSString有一个可以使用的大写字符串和小写字符串方法。

答案 2 :(得分:0)

NSString同时使用lowercaseStringuppercaseString方法。您可以将字符串中的字符作为一系列子字符串进行迭代,使用一些随机源在每个字符串上调用相应的大写/小写字母,收集结果。有点像...

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上就地执行。