首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

iOS Swift 判斷字符串是否包含字母:UTF8 碼位檢查法

     編輯:程式設計綜合問答

Swift 中檢測字符串是否包含英文字母(A-Z, a-z),可遍歷 UTF-8 視圖檢查碼位範圍。本文提供簡潔高效的實現。

核心代碼

func containsLetter(_ string: String) -> Bool {
  for char in string.utf8 {
    // 'A'=65 ~ 'Z'=90, 'a'=97 ~ 'z'=122
    if (char > 64 && char < 91) || (char > 96 && char < 123) {
      return true
    }
  }
  return false
}

// 使用
let input = "測試123abc"
if containsLetter(input) {
  print("包含字母")
} else {
  print("純數字/符號/中文")
}

原理解析

  • string.utf8 返回字符串的 UTF-8 編碼字節序列(UTF8View)
  • ASCII 字母在 UTF-8 中單字節編碼,碼位與 ASCII 碼表一致
  • 大寫 65-90,小寫 97-122

替代方案對比

方法優點缺點
正則 range(of: "[A-Za-z]", options: .regularExpression)語義清晰、支持 Unicode 字母擴展性能稍低、語法較重
CharacterSet.letters.contains(char)官方 API、正確處理 Unicode需逐字符轉 Character,較繁瑣
UTF-8 碼位檢查 (本文)極快、無依賴、適合純 ASCII 字母場景不識別非 ASCII 字母(如 é、α)

進階:Unicode 字母檢測

func containsUnicodeLetter(_ string: String) -> Bool {
  let letterSet = CharacterSet.letters
  return string.unicodeScalars.contains { letterSet.contains($0) }
}

純英文場景用 UTF-8 碼位最快;國際化項目請用 CharacterSet 或正則。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved