string – Swift 2:迭代和大写小写一些字符

string – Swift 2:迭代和大写小写一些字符,第1张

概述我想通过将一些字符转换为大写,其他一些字符转换为小写来修改 Swift字符串. 在Obj-c我有以下内容: - (NSString*) lowercaseDestination:(NSString*) string { NSUInteger length = string.length; unichar buf[length+1]; [string getCharacter 我想通过将一些字符转换为大写,其他一些字符转换为小写来修改 Swift字符串.

在Obj-c我有以下内容:

- (Nsstring*) lowercaseDestination:(Nsstring*) string {    NSUInteger length = string.length;    unichar buf[length+1];    [string getCharacters:buf];    BOol up = true;    for (int i=0; i< length ; i++) {        unichar chr = buf[i];        if( .... ) {            buf[i] = toupper(chr);        } else {            buf[i] = tolower(chr);        }    }    string = [Nsstring stringWithCharacters:buf length:length];    return string;

你会如何在Swift 2中做到这一点?

我没有找到任何Character方法来判断大小写.

将1个字符的字符串数组作为选项吗? (然后使用String方法来上下每个String

String有一个upperCaseString方法,但是Character没有.
原因是在德语等外来语言中,转换单一语言
大写字符可以导致多个字符:
print("ß".uppercaseString) // "SS"

toupper / tolower函数不是Unicode安全的,不是
在Swift中可用.

所以你可以枚举字符串字符,将每个字符转换为
一个字符串,将其转换为大写/小写,并连接结果:

func lowercaseDestination(str : String) -> String {    var result = ""    for c in str.characters {        let s = String(c)        if condition {            result += s.lowercaseString        } else {            result += s.uppercaseString        }    }    return result}

这可以更紧凑地写成

func lowercaseDestination(str : String) -> String {    return "".join(str.characters.map { c -> String in        let s = String(c)        return condition ? s.lowercaseString : s.uppercaseString    })}

重新评论:如果条件需要检查多个
然后你可能想要创建一个包含所有字符的数组
第一:

func lowercaseDestination(str : String) -> String {    var result = ""    let characters = Array(str.characters)    for i in 0 ..< characters.count {        let s = String(characters[i])        if condition {            result += s.lowercaseString        } else {            result += s.uppercaseString        }    }    return result}
总结

以上是内存溢出为你收集整理的string – Swift 2:迭代和大写/小写一些字符全部内容,希望文章能够帮你解决string – Swift 2:迭代和大写/小写一些字符所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1029703.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存