• swift笔记 (三) —— 字符和字符串


    字符串和字符
    苹果要是不提供了unicode的字符串和字符,那就是他们公司全部人的脑袋都被门夹过
    他自己家都要发非常多国家的版本号的软件,怎么可能不用unicode呢
    此处略去30字...

    这里能够拿出来说的。也就是 Swift的 String支持全部的NSString的api

    String中能够包括一些特殊字符:
    (空字符)  \ (反斜线)   (tab) (换行符)   (回车符)  ” (双引號)  ’ (单引號)

    还能够包括:
    单字节 unicode 字符 xnn               // x后面跟着两个十六进制数
    双字节 unicode 字符 unnnn           // u后面跟着四个十六进制数
    四字节 unicode 字符 Unnnnnnnn  // U(这个是大写)后面跟着八个十六进制数

    官方的样例:

    let wiseWords = ""Imagination is more important than knowledge" - Einstein"
    // "Imagination is more important than knowledge" - Einstein
    let dollarSign = "x24"        // $,  Unicode scalar U+0024
    let blackHeart = "u2665"      // ♥,  Unicode scalar U+2665
    let sparklingHeart = "U0001F496"   //这个凝视在blog上显示不了,以至于后面的都被截断了。

    。。


    空字符串
    var emptyString = “”
    var anotherEmptyString = String()

    if emptyString.isEmpty {…}  //isEmpty 方法可用,返回Bool值

    至于
    var myString = “hello”
    myString += “ world”

    let myString = “hello”
    myString += “ world”
    就不须要重复的提了吧。另外一种let 不可行,由于他是常量

    字符串作为參数的传递
    值得注意的是,字符串是传值的,而在Objective-C中。是传引用的
    尽管官方说在编译选项里能够把这个优化掉,仅仅有在须要改变字符串内容的时候才会传值,从而获得非常高效的传參
    (算了,后面看看还有没有什么能够规避这个问题的方法吧,尽量少传字符串为妙。除非不得已)

    字符
    for character in “Hello World” { 
         pintln (character)
    }

    let myChar: Character = “$”
    不解释了

    字符个数
    Swift提供了一个全局函数 countElements 能够用于干这事儿:

    let myLongString = “Hello Kitty~ Hello World~ I Love Shanghai~ I Love China~ “
    println(“myLongString has (countElement(myLongString) characters”)   //57个...

    值得注意的是:
    countElement() 是把字符一个一个数过去的,所以处理长字符串的时候。须要我们关心效率问题
    这与NSString不同,NSString是按着UTF-16存储字符串的,也是按着UTF-16去算字符数的
    而Swift存的是unicode,它并不能像UTF-16那样数,由于它也不知道每一个字符占了多大空间
    所以,countElement() 和 NSString 返回的字符数,有可能是不同的
    当然,假设把Swift的String 传给了NSString的函数的话,这里就要注意了,是要按着NSString的方式数
    也就是utf16count。而不是countElement()的返回数量

    字符串包括
    hasPrefix 和 hasSuffix 两个String的方法都是遍例字符串的:
    let myString1 = “中华人民共和国”
    let myString2 = “我是中国人”

    myString1.hasPrefix(“我”)  // false
    myString2.hasPrefix(“我”)  // true

    myString1.hasSuffix(“人民”) // true
    myString2.hasSuffix(“人民”) // false

    字符串大写和小写转换
    uppercaseString 和 lowercaseString

    let myString = “Hellow World”
    println(myString.uppercaseString)   //HELLOW WORLD
    println(myString.lowercaseString)    //hellow world

    字符编码
    Swift的字符串是unicode的。 unicode能够表示世界上不论什么一种语言的不论什么字符
    须要转换的时候。也能够使用String提供的方法 

    let myString = “abc”
    myString.utf8                      //UTF-8 编码
    myString.uft16                    //UTF-16 编码
    myString.unicodeScalars   //21位 unicode

    关于编码的知识。我就不写在这里了,须要了解的话
    请參考《The Swift Programming Language》第92-96页 (发现这个页码在不同设备上不一样,我是在iMac上看的)


  • 相关阅读:
    WordPress让文本小工具支持简码
    修改WordPress后台登录地址,提高安全性
    WordPress用键盘左右方向键来查看上一篇和下一篇文章
    Git 补丁操作
    Git 标签操作
    Git 修正错误
    Git 删除操作
    Git 重命名操作
    Git 移动操作
    Git 藏匿操作
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5138430.html
Copyright © 2020-2023  润新知