[Swift]字符串根據索引獲取指定字符,依據ASCII編碼實現字符和整數的快速轉換
阿新 • • 發佈:2018-12-09
for in 獲取 iso col and p s nat sel 通用
ASCII(American Standard Code for Information Interchange,美國信息交換標準代碼)是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其他西歐語言。
它是現今最通用的單字節編碼系統,並等同於國際標準ISO/IEC 646。
請註意,ASCII是American Standard Code for Information Interchange縮寫,而不是ASCⅡ(羅馬數字2),有很多人在這個地方產生誤解。
在Swift中實現:字符串根據索引獲取指定字符,依據ASCII編碼,實現字符和整數的快速轉換
首先擴展相應類的方法:
1extension String { 2 //subscript函數可以檢索數組中的值 3 //直接按照索引方式截取指定索引的字符 4 subscript (_ i: Int) -> Character { 5 //讀取字符 6 get {return self[index(startIndex, offsetBy: i)]} 7 8 //修改字符 9 set 10 { 11 var str:String = self12 var index = str.index(startIndex, offsetBy: i) 13 str.remove(at: index) 14 str.insert(newValue, at: index) 15 self = str 16 } 17 } 18 } 19 20 //Character擴展方法 21 extension Character 22 { 23 //屬性:ASCII整數值(定義小寫為整數值) 24 varascii: Int { 25 get { 26 let s = String(self).unicodeScalars 27 return Int(s[s.startIndex].value) 28 } 29 } 30 } 31 32 //Int擴展方法 33 extension Int 34 { 35 //屬性:ASCII值(定義大寫為字符值) 36 var ASCII:Character 37 { 38 get {return Character(UnicodeScalar(self)!)} 39 } 40 }
調用擴展方法,實現功能。示例:
1 //字符串 2 let str:String = "Strengthen" 3 //根據索引獲取字符 4 let char:Character = str[0] 5 //根據字符獲取ASCII對應的字符整數值 6 let num:Int = char.ascii 7 print("\(char) ", terminator: "") 8 print("\(num) ", terminator: "") 9 //Print: S 83 10 11 //表示整數的字符串 12 let strNum:String = "88" 13 //先轉換為整數,在根據ASCII表轉換為對應字符 14 let charNum:Character = Int(strNum)!.ASCII 15 print("\(charNum) ", terminator: "") 16 //Print: X
[Swift]字符串根據索引獲取指定字符,依據ASCII編碼實現字符和整數的快速轉換