zoukankan      html  css  js  c++  java
  • 3.字符串和字符

      String是例如"hello, world""albatross"这样的有序的字符类型的值的集合。通过String类型来表示。 一个String的内容可以用许多方式读取,它包括一个字符值的集合。 

    1.字符串字面量

    • 字符串字面量是由双引号 ("") 包裹着的具有固定顺序的文本字符集。
    let someString = "Some string literal value"; 

    2.初始化空字符串

    var emptyString = "";               // 空字符串字面量
    var anotherEmptyString = String();  // 初始化方法
    if emptyString == anotherEmptyString
    {
        print("(emptyString.isEmpty)");  //结果为true
    }

    3.字符串可变性

    • 可以通过将一个特定字符串分配给一个变量来对其进行修改,或者分配给一个常量来保证其不会被修改
    var variableString = "Horse";
    variableString += " and carriage";

    4.字符串是值类型

    • Swift String类型是值类型。 如果创建了一个新的字符串,那么当其进行常量、变量赋值操作,或在函数/方法中传递时,会进行值拷贝。 任何情况下,都会对已有字符串值创建新副本,并对该新副本进行传递或赋值操作。
    • 在实际编译时,Swift 编译器会优化字符串的使用,使实际的复制只发生在绝对必要的情况下,这意味着将字符串作为值类型的同时可以获得极高的性能。

     5.使用字符 

    //通过for-in循环来遍历字符串中的characters属性来获取每一个字符的值
    for character in "Dog!".characters
    {
        print(character);
    }
    
    //通过传递一个值类型为Character的数组作为自变量来初始化:
    let catCharacters: [Character] = ["C", "a", "t", "!"];
    let catString = String(catCharacters);
    print(catString);

    6.比较字符串

    //字符串/字符可以用等于操作符(==)和不等于操作符(!=)比较:
    let quotation = "We're a lot alike, you and I.";
    let sameQuotation = "We're a lot alike, you and I.";
    if quotation == sameQuotation
    {
        print("These two strings are considered equal");
    }
    
    //通过调用字符串的hasPrefix(_:)/hasSuffix(_:)方法来检查字符串是否拥有特定前缀/后缀,两个方法均接收一个String类型的参数,并返回一个布尔值。
    let romeoAndJuliet = "Act 1 Scene 1: Verona, A public place";
    romeoAndJuliet.hasPrefix("Act 1");

    7.访问和修改字符串

    • 字符串索引:每一个String值都有一个关联的索引(index)类型,String.Index,它对应着字符串中的每一个Character的位置。使用startIndex属性可以获取一个String的第一个Character的索引。使用endIndex属性可以获取最后一个Character的后一个位置的索引。
    • 调用insert(_:atIndex:)方法可以在一个字符串的指定索引插入一个字符。
    • 调用insertContentsOf(_:at:)方法可以在一个字符串的指定索引插入一个字符串。
    • 调用removeAtIndex(_:)方法可以在一个字符串的指定索引删除一个字符。
    • 调用removeRange(_:)方法可以在一个字符串的指定索引删除一个子字符串。
    var greeting = "Guten Tag!";
    greeting[greeting.startIndex];  //G
    let index = greeting.startIndex.advancedBy(2);
    greeting[index];  //t
    greeting.insert("!", atIndex: greeting.endIndex);  //"Guten Tag!!"
    greeting.insertContentsOf(" Come".characters, at: greeting.endIndex.predecessor());  //"Guten Tag! Come!"
    greeting.removeAtIndex(greeting.endIndex.predecessor());  //"!"
  • 相关阅读:
    jquery通过live绑定toggle事件
    svn is already locked解决方案
    不安全代码只会在使用 /unsafe 编译的情况下出现
    eclipse 新建 java 文件时自动生成注释
    浅谈权限设计
    ie6/IE8/IE9/谷歌以及火狐等浏览器下li 高度一致解决办法
    PHP+MSSQL TEXT字段被截断的解决方案
    利用CSS让dl dt dd呈现多行多列效果
    CSS实现图片水平垂直居中于DIV
    CSS 关于IE6 margin 为负数 负值的时候 正常显示的方法
  • 原文地址:https://www.cnblogs.com/LeeGof/p/5673871.html
Copyright © 2011-2022 走看看