[Swift]字符串根據索引獲取指定字符,依據ASCII實現字符和整數的相互轉換

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公衆號:山青詠芝(shanqingyongzhi)
➤博客園地址:山青詠芝(https://www.cnblogs.com/strengthen/ 
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:http://www.javashuo.com/article/p-zodviiar-hw.html 
➤若是連接不是山青詠芝的博客園地址,則多是爬取做者的文章。
➤原文已修改更新!強烈建議點擊原文地址閱讀!支持做者!支持原創!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★html

最新語法:git

var arr = s.map { Int($0.asciiValue!) }github

ASCII(American Standard Code for Information Interchange,美國信息交換標準代碼)是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其餘西歐語言。
它是現今最通用的單字節編碼系統,並等同於國際標準ISO/IEC 646。
請注意,ASCII是American Standard Code for Information Interchange縮寫,而不是ASCⅡ(羅馬數字2),有不少人在這個地方產生誤解。
在Swift中實現:字符串根據索引獲取指定字符,
依據ASCII編碼,實現字符和整數的相互轉換。
首先擴展相應類的方法:
 1 //String擴展
 2 extension String {        
 3     //subscript函數能夠檢索數組中的值
 4     //直接按照索引方式截取指定索引的字符
 5     subscript (_ i: Int) -> Character {
 6         //讀取字符
 7         get {return self[index(startIndex, offsetBy: i)]}
 8         
 9         //修改字符
10         set
11         {
12             //轉換爲字符數組
13             var arr:[Character] = Array(self)
14             arr[i] = newValue
15             self = String(arr)
16         }
17     }
18     
19     //String轉ASCII整數值(定義小寫爲整數值)
20     public var ascii: Int {
21         return Int(unicodeScalars.first?.value ?? 0)
22     }
23 }
24 
25 //Character擴展 
26 extension Character  
27 {  
28   //Character轉ASCII整數值(定義小寫爲整數值)
29    var ascii: Int {
30        get {
31            return Int(self.unicodeScalars.first?.value ?? 0)
32        }       
33     }
34 
35     //判斷是否爲數字
36     func isDigit() -> Bool
37     {
38         if self.ascii > 47 && self.ascii < 58
39         {
40             return true            
41         }
42         return false
43     }
44     
45     //判斷是否爲大寫字母
46     func isUppercased() -> Bool
47     {
48         if self.ascii > 64 && self.ascii < 91
49         {
50             return true            
51         }
52         return false
53     }
54     
55     //判斷是否爲小寫字母
56     func isLowercased() -> Bool
57     {
58         if self.ascii > 96 && self.ascii < 123
59         {
60             return true            
61         }
62         return false
63     }
64     
65     //判斷是否爲字母
66     func isLetter()-> Bool
67     {
68         if (self.ascii > 64 && self.ascii < 91) || (self.ascii > 96 && self.ascii < 123)
69         {
70             return true            
71         }
72         return false
73     }
74 }
75 
76 //Int擴展
77 extension Int
78 {
79     //Int轉Character,ASCII值(定義大寫爲字符值)
80     var ASCII:Character 
81     {
82         get {return Character(UnicodeScalar(self)!)}
83     }
84 }

調用擴展方法,實現功能。示例:數組

 1 //字符串
 2 var str:String = "S"
 3 //String轉ASCII整數值(定義小寫爲整數值)
 4 print(str.ascii)
 5 //Print:83
 6 
 7 //字符串
 8 str = "Strengthen"
 9 //根據索引獲取字符
10 let char:Character = str[0]
11 //字符串修改
12 str[1] = Character("Q")
13 print(str)
14 //Print: SQrengthen
15 
16 //Character轉ASCII整數值(定義小寫爲整數值)
17 let num:Int = char.ascii
18 print("\(char) ", terminator: "")
19 print("\(num) ", terminator: "")
20 //Print: S 83  
21      
22 //表示整數的字符串
23 let strNum:String = "88"
24 //先轉換爲整數,在根據ASCII錶轉換爲對應字符
25 let charNum:Character = Int(strNum)!.ASCII
26 print("\(charNum) ", terminator: "")
27 //Print: X
相關文章
相關標籤/搜索