swift-字符串

//
//   main.swift
//   swift3
//
//   Created by tqh on 15/6/19.
//   Copyright (c) 2015年 tqh. All rights reserved.
//

import Foundation

println( " Hello, World! ")


/* *
*  (一)字符串字面量
*/
let someString =  " Some string literal value "


/* *
*   字符串字面辆包含一下特殊字符
1.转义特殊字符 \0 (空字符)、\\(反斜线)、\t (水平制表符)、\n (换行符)、\r (回车符)、\" (双 引号)、\' (单引号)。
2.单字节 Unicode 标量,写成 \xnn,其中 nn 为两位十六进制数。
3.双字节 Unicode 标量,写成 \unnnn,其中 nnnn 为四位十六进制数。
4.四字节 Unicode 标量,写成 \Unnnnnnnn,其中 nnnnnnnn 为八位十六进制数。
*/

/* *
*(二)初始化空字符串
*/

var emptyString =  ""
var anotherEmptyString = String()
// 判断是否为空
if emptyString.isEmpty {
    println( " not found ");
}
/* *
*(三)字符串可变性
*/
// let 不可变 var 可变
var variableString =  " Hors e "
variableString +=  "  a nd ca rriag e "
/* *
*(四)字符串是值类型
*/

/* *
*  (五)使用字符(Characters)
*/

for Character  in  " haha? " {
    println(Character); // 打印出每个字符
}
// 通过标明一个 Character 类型注解并通过字符字面量进行赋值,可以建立一个独立的字符常量或变量:
let yenSign: Character =  " ¥ "

/* *
*  (六)计算字符数量 count(unusualMenagerie)
*/

let unusualMenagerie =  " haha你是蛇~以呀嘿。。。 "
println( " unusualMenagerie有 \(count(unusualMenagerie)) 个字符 ")

/* *
*  (七)连接字符串可字符
*/

// 符串和字符的值可以通过加法运算符 (+) 相加在一起并创建一个新的字符串值:
// 您也可以通过加法赋值运算符 (+=) 将一个字符串或者字符添加到一个已经存在字 符串变量上:
var instruction =  " love "
instruction += unusualMenagerie;
println(instruction)

/* *
*  (八)字符串插值 (和书上不一样不能*)
*/
let mutiplier =  3
let message =  " \(mutiplier) times 2.5 is\(Double(mutiplier)) "
println(message)

/* *
*  (九)比较字符串
*/
// 1.完全相等
let quotation =  " We're a lot alike, you and I. "
let sameQuotation =  " We're a lot alike, you and I. "
if quotation == sameQuotation {
println( " These two strings are considered equal ")
}

// 2.hasPrefix/hasSuffix 判断前后缀是否有相同的
 let romeoAndJuliet = [
" Act 1 Scene 1: Verona, A public place ",
  " Act 1 Scene 2: Capulet's mansion ",
" Act 1 Scene 3: A room in Capulet's mansion ",
  " Act 1 Scene 4: A street outside Capulet's mansion ",
  " Act 1 Scene 5: The Great Hall in Capulet's mansion ",
  " Act 2 Scene 1: Outside Capulet's mansion ",
  " Act 2 Scene 2: Capulet's orchard ",
" Act 2 Scene 3: Outside Friar Lawrence's cell ",
  " Act 2 Scene 4: A street in Verona ",
  " Act 2 Scene 5: Capulet's mansion ",
  " Act 2 Scene 6: Friar Lawrence's cell "
]

var cout9 =  0
var count9_1 =  0;
for scene  in romeoAndJuliet {
     if scene.hasPrefix( " Act 1  ") {
     ++cout9
    }
    
     if scene.hasSuffix( " cell ") {
    ++count9_1;
    }
}

println( " \(cout9) \(count9_1) ")

/* *
*  (十)大写和小写字符串
*/

//  uppercaseString(大写) 和 lowercaseString(小写)

/* *
* (十一) Unicode
1.UTF-8 代码单元集合 (利用字符串的 utf8 属性进行访问)
2.UTF-16 代码单元集合 (利用字符串的 utf16 属性进行访问)
3.21 位的 Unicode 标量值集合 (利用字符串的 unicodeScalars 属性进行访问)
*/
let dogString =  "  Dog! ???? "

for codeUnit  in dogString.utf8 {
    println(codeUnit)
}

for codeUnit  in dogString.utf16 {
    println(codeUnit)
}

/* *
*  (十二)Unicode 标量 (UnicodeScalars)
*/
// 每一个 UnicodeScalar 拥有一个值属性,可以返回对应的21位数值,用 UInt32值来表示。
for codeUnit  in dogString.unicodeScalars {
    println(codeUnit.value)
}
// 遍历字符
for codeUnit  in dogString.unicodeScalars {
    println(codeUnit)
}

你可能感兴趣的:(swift)