Swift - String 基本使用

充满向往的尝试Swift 的 String的用法,然后,就各种蛋疼。。。这就是我用的感受  注意: 此处为iOS 9代码,iOS 10可能会不适配

        /**
         *  创建空字符串
         *  建议使用“?”判断解析,当此变量没有值得时候,打印的话不会crash
         *  若使用“!”强制解析,当变量没有值的时候,打印的话,会crash
         */
        var string : String?

        /**
         *  创建空字符串第二种写法
         *  此种写法,即使并没有给字符串进行赋值,当你打印的时候,会打印为空,而不会crash
         */
        var otherString: String = String()
        let letString = "常量字符串";                                            // 创建常量字符串
        
        string = "hello,World!my name Is Apple"                                // 字符串赋值
        otherString = "123"
        
        // String 方法截取 (这方法用着感觉真蛋疼,估计我会果断放弃,但是官方貌似推荐这种方式)
        let fromeIndex = string?.startIndex.advancedBy(3)                      // 起始下标 3,获取 Index起始位之后 3个长度
        let fromString1: String = (string?.substringFromIndex(fromeIndex!))!   // 截取字符串,从下标为 3开始截取,截到最后(包含下标 3)
        let toIndex = string?.startIndex.advancedBy(4)
        let toString1: String = (string?.substringToIndex(toIndex!))!          // 截取字符串,从头开始截取,截到下标为 4的位置(不包含下标 4)
        
        let endIndex = string?.endIndex.advancedBy(-3)                         // 结束下标,获取 Index结束之前的 3个长度
        let rangIndex = Range<String.Index>(start: fromeIndex!, end: endIndex!)// 获取 index的截取区间,此区间为半开区间
        let rangString1: String = (string?.substringWithRange(rangIndex))!     // 截取区间内的长度
        
        // 将 String 转化成 NSString再截取。还是喜欢这种写法,为什么呢?因为我懒
        let fromString2 = (string! as NSString).substringFromIndex(3)          // 截取字符串,从下标为 3开始截取,截到最后(包含下标 3)
        let toString2 = (string! as NSString).substringToIndex(4)              // 截取字符串,从头开始截取,截到下标为 4的位置(不包含下标 4)
        let rangString2 = (string! as NSString).substringWithRange(NSMakeRange(3,4))  // 截取字符串,从下标 3开始截取,截 4位(包含下标3)

        let isPre = string?.hasPrefix(",")                                     // 判断字符串是否以","开头,返回值为 true 或者 false
        let isSuff = string?.hasSuffix(",")                                    // 判断字符串是否以","结尾,返回值为 true 或者 false
        let isContains = string?.containsString("a")                           // 判断字符串内是否包含"a",返回值为 true 或者 false
        let isEmpty = string?.isEmpty                                          // 判断字符串是否为空,为空返回 true不为空返回 false
        let stringArray = string?.componentsSeparatedByString(",")             // 切割字符串,返回一个数组
        let stringLength = string?.characters.count                            // 获取字符串长度

        // 字符串替换
        let replaceString = string?.stringByReplacingOccurrencesOfString("e", withString:"E")
        let replaceString2 = string?.stringByReplacingOccurrencesOfString("E", withString:"e",
                                                                                  options:NSStringCompareOptions.BackwardsSearch,
                                                                                    range:nil)
        
        let upperString = string?.uppercaseString                              // 全大写
        let lowerString = string?.lowercaseString                              // 全小写
        let capiString = string?.capitalizedString                             // 首字母大写
        
        // 字符串合并、拼接
        let sumString = otherString + string! + letString
        
        // UTF8 编码
        let stringUTF = string?.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())
        
        // 字符串遍历,获取字符
        var characterArray:[Character] = []                                    // 遍历String中的 Character。实际上,每个 String 都是都是由Character字
        for character in (string?.characters)! {                               // 符组成的。字符串不光只能遍历 Character,还能遍历 utf8,utf16等
            characterArray.append(character)
        }
        
        // 字符串 与 其他数据类型的拼接
        let name = "LJ"
        let birthday = 1015
        let LJInfo = "my name is \(name), birthday is\(birthday)"
        
        // 字符串的比较 ==, !=, <, >
        if otherString == string {
            debugPrint("相同是没有道理的")
        } else {
            debugPrint("不同才是对的")
        }
        
        let changeToInt : Int = Int(otherString)!                              // 将字符串转成整型
        
        debugPrint("string:\(string)")
        debugPrint("rangIndex:\(rangIndex)")
        debugPrint("fromString1:\(fromString1)")
        debugPrint("fromString2:\(fromString2)")
        debugPrint("toString1:\(toString1)")
        debugPrint("toString2:\(toString2)")
        debugPrint("rangString1:\(rangString1)")
        debugPrint("rangString2:\(rangString2)")
        debugPrint("sumString:\(sumString)")
        debugPrint("isPre:\(isPre)")
        debugPrint("isSuff:\(isSuff)")
        debugPrint("isContains:\(isContains)")
        debugPrint("isEmpty:\(isEmpty)")
        debugPrint("stringArray:\(stringArray)")
        debugPrint("stringLength:\(stringLength)")
        debugPrint("stringUTF:\(stringUTF)")
        debugPrint("replaceString:\(replaceString)")
        debugPrint("replaceString2:\(replaceString2)")
        debugPrint("upperString:\(upperString)")
        debugPrint("lowerString:\(lowerString)")
        debugPrint("capiString:\(capiString)")
        debugPrint("characterArray:\(characterArray)")
        debugPrint("LJInfo:\(LJInfo)")
        debugPrint("changeToInt:\(changeToInt)")




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值