使用 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。 所以我們根據這個邊界值來判斷字符應該占兩位還是一位。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容