使用 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。 所以我们根据这个边界值来判断字符应该占两位还是一位。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容