zoukankan      html  css  js  c++  java
  • swift -- 字符串

    1.字面量 方式

    let str = "string"

     2.初始化 空字符串

    let str2 : String = ""

    let str3 : String = String()

    3.是否为空

    print(str.isEmpty)

    4.字符串的可变性

    let str4 = "xxx"   // 不可变

    var str5 = "oo"   //可变

    5.字符串的拼接

    方式一:

    str += "abc"

    方式二:

    var str6 = "aa"

    var str7 = "bb"

    var str8 = str6 + str7

    //******new*******

     //拼接 使用  ()

        func demo4() -> Void {

            let name = "老王"

            let age = 18

    //1.不同的类型 拼接

            let str = "(name)(age)"

    //2.注意-可选项-的拼接,要使用 ?? 双问号

            let title:String? = "boss"

            let str1 = "(name)(age)(title ?? "")"

    //3.其他类型

            let point = CGPoint(x: 10, y: 22);

            let str2  = "(name)(point)"//代替oc中的NSStringFromCGPoint(poinit)

            

            print(str)

            print(str1)

            print(str2)

        

    4.重点:格式化

     

     

            let dateStr1 = String.init(format: "%02d:%02d:%02d", h,m,s)  

        }

    6.字符串插入值

    var str9 = "xxxx(str)oooo"

    7.字符串的遍历

    for i in str.characters{

    print( i )

    }

    8.字符的数量

    //1.返回指定编码的字节

            //utf8编码,每个汉字占3个字节

            let str1 = "hello world你好";

            print(str1.lengthOfBytes(using: .utf8));

            //2.字符的个数(推荐)

            print(str1.characters.count)

     

            //3.使用NSString中转(" as 类型"类型转换)

            let ocStr = str1 as NSString;

            print(ocStr.length)

    9.字符串的索引

    //第一个索引

    print(str.startIndex)   //0

    //第二个索引

    print(str.startIndex.successor())   // 1

    //最后一个索引

    print(str.endIndex)     //6,多一个,因为把最后默认的换行也算上了

    //倒数第二个索引

    print(str.endIndex.predecessor())  //5

    //获取任意一个索引

    print(str.startIndex.advanceBy(3))

    print(str.startIndex.advanceBy(-4))  //负数,从后往前数

    //通过索引,获取字符

    print(str[str.startIndex])   // 第一个字符

    10.indices的使用(indices将字符的所有下标获取到)

    for i in str.characters.indices{

    print( i )

    print(str[i])

    }

    11.在指定索引处,插入字符

    str.insert("k" , atIndex: str.startIndex)

    12.删除

    //单个字符的删除

    str.removeAtIndex(str.srtartIndex)

    //删除一段范围

    let range = str.endIndex.advanceBy(-3)...<str.endIndex

    str.remvoeRange(range)

    13.字符串比较

    let s1 = "asdf"

    let s2 = "asdf"

    //比较字符串是否相等

    if s1 == s2{

    print("相等")

    }

    14. 是否包含前缀 后缀

    print(str.hasPrefix("st"))

    print(str.hasSuffix("ing"))

    //new 取子串

    //子串

        func demo6(){

            //建议:一般使用NSString做中转,因为swift取子串的方法一直在优化

            //1.NSString

            let str = "我们一起去fly"

            let ocStr = str as NSString;

            let s1 = ocStr.substring(with: NSMakeRange(2, 3));

            

            print(s1);

            //2.swift3.0 的方法

    //        let r = 0..<5;

    //        str.substring(with: <#T##Range<String.Index>#>)

            //特点:Index

            //startIndex position == 0

            print(str.startIndex)

            //endIndex position == str.length

            print(str.endIndex)

            

            //取子串的范围

            guard let range = str.range(of: "一起") else{

                print("no string")

                return;

            }

            

            //一定找到的范围

            print(range)

            print(str.substring(with: range))

            

        }

  • 相关阅读:
    225. Implement Stack using Queues
    232. Implement Queue using Stacks
    LeetCode 763 划分字母区间
    CentOS7+eDEX-UI打造属于你的极客桌面
    好玩又有趣的linux终端命令
    Linux 应急响应入门——入侵排查
    active_anon/inactive_anon
    Red Hat 平台的推荐交换大小是多少?
    为什么RHEL系统使用交换空间而不是释放缓存和缓冲内存?
    RHEL 交换内存(Swap)使用率为 100%
  • 原文地址:https://www.cnblogs.com/daxueshan/p/5583928.html
Copyright © 2011-2022 走看看