本帖最后由 cocoaswift 于 2016-10-5 02:24 编辑

在开发过程中,经常要对用户输入的内容进行长度限制。而对于字符串信息来讲,中文字符和英文字符虽然长度不同,但都占一个字符。下面我们写一个函数来计算字符串的长度。

[Swift] 纯文本查看 复制代码
static func numberOfChars(_ str: String) -> Int {
    var number = 0

    guard str.characters.count > 0 else {return 0}

    for i in 0...str.characters.count - 1 {
        let c: unichar = (str as NSString).character(at: i)

        if (c >= 0x4E00) {
            number += 2
        }else {
            number += 1
        }
    }
    return number
}


代码中的 0x4E00 是一个十六进制数,这是字符编码集中中文字符开始的地方,日文的编码边界是 0x0800。 所以我们根据这个边界值来判断字符应该占两位还是一位。

使用 Swift 判断中英文字符

使用 Swift 判断中英文字符 - 敏捷大拇指 - 使用 Swift 判断中英文字符





作者:CyrusCao