swift语言-字符串

1,简介
swift中的用于表示字符串的类型为 String 用于表示字符集。swift的String具有以下特点:

<1> swift中的String 与Object-C的NSString 有很大程度上的相同,具体来说就是其中的许多基础的API几乎相同。 在Foundataion框架中,许多要求传入NSString的参数都可以使用String类型来代替,但是有一点请注意,在swift中,同样有NSString类型,不能认为String 类型就是 NSString类型。

<2>String 是一种值类型,这一点与NSString 有所不同,在Object-C中,你将NSString对象作为参数传递的时候,其实只是将其对象的引用作为参数进行了传递,换句话说,你只是将这个对象的指针给了参数。而String 不同,应该把它看成一种深拷贝,即将整个对象复制了一份,然后将这个副本的指针赋给了参数。注意,在实际的编译过程中,swift会优化字符串的使用,使得只有在必须的情况下才会真正的拷贝。但是无论什么时候,都应该将其看做一种值类型。

2 如何使用String?

<1>初始化一个字符串

        let str:String = "hello world" 
        var str2 = String()
        var str3 = ""

<2>字符串长度:

        let s:String = "hello"   
        print(s.characters.count)

<3>字符串插值,swift 设计的一种简单的构建新字符串的方式

//创建一个字符串,在 \(varName) varName会被替换为相应的值
        let str :String = "world"
        let str2:String = "hello \(str)"
        print(str2)
        //print:hello world

<4>字符串是否为空?

 //判断字符串是否为空
        let str = ""
        print(str.isEmpty)
        //print: true

<5>字符串连接

  //连接字符串
        let str = "hello "
        let str2 = "world"
        let str3 = str+str2
        print(str3)
        //print: hello world

<6>字符串的插入、删除、修改、追加、截取、切割、替代等

 //在某个位置插入某个字符
        var str:String = "hello world"
        str.insert("*", at: str.index(str.startIndex, offsetBy: 2))
        print(str)
        //print: he*llo world

 //在某个位置插入字符串
        var str:String = "hello world"
        str.insert(contentsOf: "123".characters, at: str.index(str.startIndex, offsetBy: 2))
        print(str)
        //print he123llo world

 //在某个位置追加字符串和字符
        var str:String = "hello world"
        str.append("!")//追加字符
        str.append("123")//追加字符串
        print(str)
        //print: hello world!123

 //遍历字符串
        let str:String = "123"
        for value in str.characters{
            print(value)
        }

//移除某个字符或者字符串
        var str = "hello world"
        str.remove(at: str.index(str.startIndex, offsetBy: 2))//移除字符
        print(str)
        //print: helo world
        str.removeSubrange(str.startIndex..<str.index(str.endIndex, offsetBy: -4))
        print(str)
        //print:  orld

 //代替某段字符串或者某个字符串
        var str = "hello world"
        var str2 = "你好 世界"
        str.replaceSubrange(str.startIndex..<str.endIndex, with: str2.characters)
        print(str)
        //print: 你好 世界

//截取某段字符串或者某个字符串
        let str = "hello world"
        let str2 = "你好 世界"
        print(str.substring(to: str.index(str.startIndex, offsetBy: 2)))
        //print : he
        print(str2.substring(from: str2.index(str2.endIndex, offsetBy: -2)))
        //print : 世界

//切割某段字符串或者某个字符串
        let str = "hello world"
        let arr:Array =  str.components(separatedBy: " ")
        print(arr)
         //print: ["hello", "world"]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值