1. 程式人生 > >[Swift]字串根據索引獲取指定字元,依據ASCII編碼實現字元和整數的快速轉換

[Swift]字串根據索引獲取指定字元,依據ASCII編碼實現字元和整數的快速轉換

ASCII(American Standard Code for Information Interchange,美國資訊交換標準程式碼)是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其他西歐語言。 它是現今最通用的單位元組編碼系統,並等同於國際標準ISO/IEC 646。 請注意,ASCII是American Standard Code for Information Interchange縮寫,而不是ASCⅡ(羅馬數字2),有很多人在這個地方產生誤解。   在Swift中實現:字串根據索引獲取指定字元,依據ASCII編碼,實現字元和整數的快速轉換
首先擴充套件相應類的方法:
 1 extension 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 = self 12 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 var ascii: 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