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


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

    最新语法:

    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
  • 相关阅读:
    『Asp.Net 组件』第一个 Asp.Net 服务器组件:自己的文本框控件
    『Asp.Net 组件』Asp.Net 服务器组件 的开发优势和劣势
    『开源』简单的代码统计工具 开源啦[有图有真相]
    文件中的类都不能进行设计,因此未能为该文件显示设计器。设计器检查出文件中有以下类: FormMain --- 未能加载基类
    DB2:FETCH FIRST 1 ROWS ONLY
    IEnumerable的几个简单用法
    一个字符串中包含逗号个数
    字符串处理总结之一(C#String类)
    C# 中DateTime的各种使用
    C# 键值对类相关
  • 原文地址:https://www.cnblogs.com/strengthen/p/10091038.html
Copyright © 2020-2023  润新知