swift极简文档(1)字符串

原创 2017年08月02日 10:40:19


OC和Swift中字符串的区别

  • 在OC中字符串类型时NSString,在Swift中字符串类型是String
  • OC中字符串@"",Swift中字符串""

  //1、字符串声明

        var ch999Str1 : String = " "        //声明一个空字符串

        var ch999Str2 = "hans"               // 声明时候可以忽略类型,未定义变量类型,在swift中会根据值推测变量的类型为String

        var ch999Str3 = String()  // initializer syntax,空初始化


        

        //可以通过检查布尔量 isEmpty属性来确认一个 String值是否为空:

        if ch999Str3.isEmpty {

            print("我是空的看到了不?")

        }

        

        var ch999Str4 : String?

        if ch999Str4 == nil {

            ch999Str4 = "hehe"

        }

       

        

        

        //2、字符串拼接

        ch999Str1 = ""

        ch999Str2 = ""

        ch999Str3 = ch999Str1 + ch999Str2//利用+直接将字符串拼接在一起,比较直接

     

        let array : [String] = ["c","h", "999"]

        let arrayStr : String = array.joined(separator: "/")//将数组中的元素拼接成字符串:c/h/999

        

        

        //3、字符串的截取

        

        //(1)index

        ch999Str1 = "六剑客与小白"

        var ch999str44 = "六剑客与小白六剑客与小白"

        

        //let index = ch999Str1.startIndex.advancedBy(5) //弃用了

        let index1 = ch999Str1.index(ch999Str1.endIndex, offsetBy: -2)

        let index2 = ch999Str1.index(ch999Str1.startIndex, offsetBy: 3)

        

        //substringFromIndex:是包括当前下标的值开始截取,到字符串最后停止

        ch999Str2 = ch999str44.substring(from: index1)

        //substringToIndex:是截取到当前下标为止

        ch999Str3 = ch999str44.substring(to: index1)

        

        //limitedBy 给定限制范围,确保不会越界

        if let index3 = ch999str44.index(ch999str44.startIndex, offsetBy:15, limitedBy: ch999str44.endIndex){

            print("index3str = \(ch999str44[index3])")//y

        }else{

            print("越界了")//y

        }

        print("ch999Str2 = \(ch999Str2) \nch999Str3 =\(ch999Str3)\nindex = \(index2)"   )


        //(2)range

        let rangeee = 1...4

        let afterRangeee = ch999str44.index(after: ch999str44.startIndex  )..<ch999str44.index(ch999str44.endIndex, offsetBy: -2)

        

        print("ch999Str2 = \(ch999str44[afterRangeee]) \nch999Str3 =\(ch999str44[afterRangeee])\nrange = \(afterRangeee)"   )


        

        

        //4、字符串的分割

        //components(separatedBy:)方法是将字符串根据指定的字符编码参数进行分割,并将分别的内容转换为一个数组。其语法形式如下:

        

        //func components(separatedBy separator: CharacterSet) -> [String]

        

        //其中,separator用来指定分割的字符集。

        

        

        var ch999Str5 = ",,,,,"

        var array2 = ch999Str5.components(separatedBy: ",")

        print("分割后:\(array2)\n\(ch999Str5.components(separatedBy: ","))")


       

      

        //5distance 查找字符的位置

        ch999str44 = "六剑客与小白六剑客与小白"

        let needle: Character = ""

        if let idx = ch999str44.characters.index(of:needle) {

            let pos = ch999str44.characters.distance(from:ch999str44.startIndex, to: idx)

            print("Found\(needle) at position\(pos)")//Found . at position 5

        }

        else {  

            print("Not found")  

        }

        

        

        //6丶使用字符串替换指定范围的子字符串

        //(1)全局替换

        ch999str44 = ch999str44.replacingOccurrences(of: "", with: "")

        print(ch999str44)

        //(2)局部替换

        ch999str44.replaceSubrange(ch999str44.startIndex..<ch999str44.index(ch999str44.startIndex, offsetBy: 6), with:"ch999")

        print("\(ch999str44)") // ch999六剑客与小白

        

        //根据NSCharacterSet查找

        let searchRange = ch999str44.startIndex ..< ch999str44.characters.index(ch999str44.startIndex, offsetBy: 7)

        let cSet = CharacterSet.uppercaseLetters

        var range = ch999str44.rangeOfCharacter(from: cSet)

        print(range!)

        

        //根据字符串查找

        range = ch999str44.range(of: "小白")

        print(range!)

        range = ch999str44.range(of: "小白", options: NSString.CompareOptions.caseInsensitive, range: searchRange, locale: nil)

        if let tempRange = range {

            print("tempRange:\(tempRange)")

        }

        

//        var c:CharacterSet = NSCharacterSet(charactersIn:"小白") as CharacterSet

//

//        var ranges = ch999str44.rangeOfCharacter(from: c)

//        

//        

//        

        

        

        //7丶判断包不包含

        //contains(_:)方法用来判断字符串A是否包含aString字符串,其语法形式如下:

        //func contains(_ str: String) -> Bool

        //其中,str用来指定一个字符串。

        if(ch999str44.contains("小白")){

            

            print("ch999str44字符串中包含小白字符串")

            

        }else{

            

            print("ch999str44字符串中不包含小白字符串")

            

        }


相关文章推荐

Swift语言官方文档翻译(1)

由于本人准备学swift,但是英语又没达到直接可以阅读的能力,所以就自己先翻译一遍,不用每次都去读英文文档。这就跟当年备考一样,对于阅读理解,不懂的单词都要查出其意思,标注在单词下面,方便以后复习所用...

Swift基础1-常量、变量、字符串的介绍

此篇文章主要介绍我们在OC中经常使用的一些基本数据类型在Swift中的写法、定义、用法等,方便想要学习Swift的初学者学习。初学者可以直接拿着代码进行学习,省去了四处去搜寻学习资料的麻烦。...

swift2.2字符串&amp;数组&amp;集合

  • 2016年02月16日 09:54
  • 9KB
  • 下载

R极简教程-1:数据分析前景

数据分析之我见数据分析是一个久已有之的行当了,最早出现的地方,应该是可能是在几百年前的科学领域,绝大多数的科学,其实都是实验+数据的模式,实验自然就是各种试管仪器激光化学,但是实验最终会产出数据,科研...

如何在线生成Word文档?一种极简,极强大的方法,支持图片表格等各种格式

大家在日常工作中会遇到这样的情况,在线给数万人生成一个证书、成绩单什么的,而且要求保存为word文档让大家下载。 难道我们要去学习word的编码格式?难道要去找一个word读写库?太复杂了!我们其实只...
  • maray
  • maray
  • 2015年03月26日 20:33
  • 3243

对象存储系统Swift官方文档

对象存储系统Swift官方文档 转自: http://www.cnblogs.com/yuxc/archive/2011/12/06/2278303.html 对象存储系统Swift技...

SWIFT API 使用文档

http://www.cnblogs.com/lxguidu/archive/2013/04/25/3042137.html 1、背景知识 OpenStack Object Stora...

Swift 集合类型(Collection Type) 之 set(官方文档翻译及总结)

Swift 集合类型(Collection Type) 之 set(官方文档翻译及总结)
  • soindy
  • soindy
  • 2015年07月15日 14:41
  • 1117

Swift 集合类型(Collection Type) 之 数组(array)(官方文档翻译及总结)

Swift 集合类型(Collection Type) 之 数组(array)(官方文档翻译及总结) ‘[NSObject]’ is not convertible to ‘[String]'...
  • soindy
  • soindy
  • 2015年07月15日 12:22
  • 993
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:swift极简文档(1)字符串
举报原因:
原因补充:

(最多只允许输入30个字)