美文网首页
2.1 字符、字符串常用方法、属性

2.1 字符、字符串常用方法、属性

作者: LucXion | 来源:发表于2020-05-22 10:42 被阅读0次

    整数和浮点数之间可利用构造方法进行相互转换

    var a:Int = 1
    var b:Double = 2.0
    var c:Int = Int(b)
    var d:Double = Double(a)
    

    字符类型Character

    var ch:Character = "c"// 只允许保存单个字符 也可以通过构造函数来构造Character("c")
    var chs:[Character] = ["a","b","c"]// 字符数组
    var chStr = String(chs);//"abc\n"  通过字符数组构建字符串
    MemoryLayout<Character>.size;//Swift5中与String类型大小相同,同占16字节长度
    
    Swift 5中 String类型的实例已经废弃了名为characters的集合
    构造字符串
    var str1 = String()// ""
    var str2 = String("hello")
    var str3 = String(666)// "666"
    var str4 = String(false)// "false"
    var str5 = String(describing: (1,2,"c"))// 通过元组构造 (1,2,"c")
    var str6 = String(format: "我是%@", "小灰灰") // 我是小灰灰
    var str7 = String(describing: (String.self))//获取类型字符串
    字符串组合
    var a = "Hello"
    var b = "world"
    var c = a+b; // String对+号进行了重载,可以直接用于组合字符串
    var d = a+"-"+b;
    var e = "Good,\(d)"// 也可以通过\()实现快速插入字符串
    

    转义字符

    /*
      转义字符
    \0        用来表示空白符
    \\      用来表示反斜杠\
    \t      用来表示制表符 // tabL = 系统制表区域(4-8个空格)  str\t相当于 str + (tabL - str.count % 4) * 空格
    \n      用来表示换行符
    \r      用来表示回车符
    \'      用来表示单引号
    \"              用来表示双引号
    \u{}    用unicode码来创建字符 //使用unicode码来创建字符  unicode码21代表的字符为!
     
     */
    
    var string = "123456789"
    //         《重要属性:startIndex、endIndex》
    //1. 获取字符串起始的下标  **1**
    var startIndex = string.startIndex
    //1.1 获取字符串结束的下标  **不为string长度,但可以对应下标**
    var endIndex = string.endIndex
    //         《range》
    //2.获取某个子串在父串中的范围  **与endIndex一样没有连续的自然数规律**
    //var range = string.range(of: "456")
    //2.1怎么获取指定内容的范围      ???????????????
    //2.2怎么利用range获取字符串      ???????????????
    //2.3怎么替换字符串内容      ???????????????
    //         《追加字符串》
    //3.追加一个字符  参数可以是字符串,直接对string生效
    //string.append(Character("!"))
    //         《插入字符串》
    //4.在指定位置插入一个字符 可以理解为在该下标后插入
    //string.insert("~", at: string.index(string.startIndex, offsetBy: 4))
    //4.1 如何在特定内容后插入内容      ???????????????
    //4.2在指定位置插入一组字符  startIndex + offset 0 为内容前
    //string.insert(contentsOf: ["~","~","~"], at: string.index(string.startIndex, offsetBy: 0))
    //         《截取字符串》
    //5.通过范围运算符(...)和index,获取字符串中的一个子串 共截取5个字符
    //var subString = string[startIndex...string.index(startIndex, offsetBy: 4)]
    //5.1通过范围运算符(..<)和index,截取子串
    //var subString2 = string[string.index(endIndex, offsetBy: -5)..<endIndex]
    //         《替换字符串》
    //6 在指定范围替换一个字符串:(范围运算符+index)
    //string.replaceSubrange(string.startIndex...string.index(string.startIndex, offsetBy: 4), with: "Hi")
    //         《删除字符串》
    //6.在指定位置删除一个字符 此时string = "Hi-Swift!~~~~ Hello-Worl"
    //string.remove(at: string.index(before:string.endIndex))
    //6.1删除指定范围的字符
    //string.removeSubrange(string.startIndex...string.index(string.startIndex, offsetBy: 2))
    //6.3删除所有字符  此时
    //string = string.removeAll()
    var string2 = "My name is Jaki"
    //全部转换为大写
    string2 = string2.uppercased() //结果为 "MY NAME IS JAKI"
    //全部转换为小写
    string2 = string2.lowercased() //结果为 "my name is jaki"
    //检查字符串的前缀和后缀:
    //检查字符串是否有My前缀
    string2.hasPrefix("My")
    //检查字符串是否有jaki后缀
    string2.hasSuffix("jaki")
    

    相关文章

      网友评论

          本文标题:2.1 字符、字符串常用方法、属性

          本文链接:https://www.haomeiwen.com/subject/erzfahtx.html