Swift- 字符串和字符

//一. 字符串(Strings)和字符(Characters)
        //Swift中导入Foundation框架可以使用NSString 的方法
        //1. 单行String, 用双引号
        let someString = "Some string literal value"
        
        //2. 多行String, 三个双引号.每行语句后有换行符,不换行用 \,空换行用空白行
        //结束符缩进不能多于内容,否则会报错。和结束符缩进相同的字符串,前边的空格自动忽略,比结束符缩进多的字符串前边的空格会显示
        let quotation = """

        The White Rabbit put on his spectacles.  "Where shall I begin, \
            please your Majesty?" he asked.
             
        "Begin at the beginning," the King said gravely, "and go on \
        till you come to the end; then stop."

        """
        print(quotation)
        
        //3. 字符串中的特殊字符
        //字符串可以包含的特殊字符:\0(null), \\, \t(水平制表符), \n, \r, \", \'.  统一码Unicode,写作 "\u{n}",n是1-8位的十六进制数, 返回值对应一个合法的UIcode码字符
        let wiseWords = "\"Imagination is more important than knowledge\" - Einstein" //包含双引号
        let dollarSign = "\u{24}"; print(dollarSign)  //输出美元字符
        let blackHeart = "\u{2665}"; print(blackHeart) //黑桃心
        let sparklingHeart = "\u{1F496}"; print(sparklingHeart)
        
        //多行字符串中可以直接使用双引号,使用三引号时,至少用一个 \ 将三引号隔开,如下
        let threeDoubleQuotationMarks = """
        Escaping the first quotation mark \"""
        Escaping all three quotation marks \"\"\"
        """
        print(threeDoubleQuotationMarks)
        
        //4. 字符串初始化
        //(1) 用空字符串赋值
        var emptyString = ""
        //(2)用语法赋值
        var anothEmptyString = String()
        
        //判断是否为空,使用isEmpty属性
        if emptyString.isEmpty {
            print("Nothing to see here")
        }
        //可变字符串用 var, 不可变字符串用let
        var variableString = "Horse"
        variableString += " and carriage" //variableString is now "Horse and carriage"
        
        let constantString = "Highlander"
        //constantString += " and another Highlander"  // this reports a compile-time error - a constant string cannot be modified
        
        //Strings 是值类型Value Types
        //创建一个新字符串后,当它被传给函数或者赋值给常量变量,String的值都会被拷贝一份。保证了字符串在传递过程中不会被修改
        
        
        //5. 字符(Characters)
        //(1) 创建字符,用type标注类型
        let exclamationMark: Character = "!"
        
        //(2) 遍历字符串获取字符串的每一个字符
        for character in "Dog!" {
            print(character)
        }
        // D
        // o
        // g
        // !
        
        //(3) 可以用字符串数组为字符串赋值
        let catCharacters: [Character] = ["C", "a", "t", "!"]
        let catString = String(catCharacters); print(catString) // print "Cat!"
        
        //6. 字符串和字符的连接
        //字符串可以拼接字符,字符后不能拼接字符或字符串,因为字符只能有一个字符
        //(1) 用 +
        let string1 = "hello"
        let string2 = "there"
        var welcome = string1 + string2
        
        //(2) 用 +=
        var instruction = "look over"
        instruction += string2
        
        //(3) 字符串拼接字符,使用String的 append() 方法
        welcome.append(exclamationMark)
        
        //(4) 拼接两个多行字符串,想要每行都换行,多行字符串最后一行为空
        let goodStart = """
        one
        two

        """
        let end = """
        three
        """
        print(goodStart + end)
        // one
        // two
        // three
        
        //7. 字符串插入(String Interpolation)
        //插入字符串用 \()
        let multiplier = 3
        let message = "\(multiplier) times 2.5 is \(Double(multiplier) * 2.5)" // multiplier 是Int 类型, 2.5 是Double类型,* 不能用于两种类型相乘
        
        
        //二. 延展字母簇(Extended Grapheme Clusters)
        //Swift用延展字母簇(Extended Grapheme Clusters)表示字符的值, 一个字符可以用一个或多个多个Unicode 码表示, 每个Unicode 码都是一个唯一的21字节的数字,用来表示一个字符或表情。例如 U+0061 表示字母 a, U+1F425 表示正面朝前的小鸡符号 

猜你喜欢

转载自blog.csdn.net/LeeCSDN77/article/details/80706935