【问题标题】:Random uppercase - lowercase随机大写 - 小写
【发布时间】:2011-08-14 22:29:29
【问题描述】:

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

谢谢

【问题讨论】:

  • 到目前为止您尝试过什么?你在哪个部分苦苦挣扎?随机数生成,还是将字符转换为大写?

标签: objective-c xcode uppercase lowercase


【解决方案1】:

您可以对子字符串使用-uppercaseString-lowercaseString 方法,或者对字符使用toupper()tolower() 函数。没有办法简单地过滤字符串。您将需要使用 NSMutableString 或 C 字符数组。

请参阅this question 了解如何获取随机布尔值,您可以使用它来决定字符是大写还是小写。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      您可以将单词分解为一个字母数组,然后使用随机数循环以确定大小写,在循环数组之后,只需使用 NSMutableString 将字母重新组合在一起即可。

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

      【讨论】:

        猜你喜欢
        • 2020-03-06
        • 2018-01-14
        • 2015-02-20
        • 1970-01-01
        • 1970-01-01
        • 2019-11-05
        • 2014-05-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多