为有牺牲多壮志,敢教日月换新天。

[Swift]字符串根据索引获取指定字符,依据ASCII实现字符和整数的相互转换

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/ 
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:https://www.cnblogs.com/strengthen/p/10091038.html 
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

热烈欢迎,请直接点击!!!

进入博主App Store主页,下载使用各个作品!!!

注:博主将坚持每月上线一个新app!!!

最新语法:

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

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

 

posted @ 2018-12-09 14:10  为敢技术  阅读(1185)  评论(0编辑  收藏  举报