【发布时间】:2011-08-14 22:29:29
【问题描述】:
我想让字符串随机将字母更改为小写或大写(在 Xcode 中)。 例如:“example”到“ExaMpLe”或“eXAMPle”或ExAmPlE”或其他类似的东西随机.. 我能解决这个问题吗?
谢谢
【问题讨论】:
-
到目前为止您尝试过什么?你在哪个部分苦苦挣扎?随机数生成,还是将字符转换为大写?
标签: objective-c xcode uppercase lowercase
我想让字符串随机将字母更改为小写或大写(在 Xcode 中)。 例如:“example”到“ExaMpLe”或“eXAMPle”或ExAmPlE”或其他类似的东西随机.. 我能解决这个问题吗?
谢谢
【问题讨论】:
标签: objective-c xcode uppercase lowercase
您可以对子字符串使用-uppercaseString 和-lowercaseString 方法,或者对字符使用toupper() 和tolower() 函数。没有办法简单地过滤字符串。您将需要使用 NSMutableString 或 C 字符数组。
请参阅this question 了解如何获取随机布尔值,您可以使用它来决定字符是大写还是小写。
【讨论】:
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 上就地执行。
【讨论】:
您可以将单词分解为一个字母数组,然后使用随机数循环以确定大小写,在循环数组之后,只需使用 NSMutableString 将字母重新组合在一起即可。
NSString 有一个可以使用的大写字符串和小写字符串方法。
【讨论】: