Swift学习之十:字符串与字符(Strings and Characters)

字符串是有序的字符集,如"hello, world" 或者 "albaatross".在Swift中字符串类型是String,由有序的Character组合而成。

Swift中的String与Character类型提供了快速,与Unicode兼容的方式在代码中操作文本。String字符串的创建与操作的语法

是轻量的,可阅读的,与C语言中的字符串语法类似。字符串的连接可以使用+操作符直接相连,字符串可变性是通过选择

常量或者变量,就像Swift中的其它任何类型一样。

// 字符串是由""括起来的
let someString = "Some string literal value"

字符串中可以包含特殊字符,如:

let wiseWords = "\"Imagintion is more important than knowledge\" - Einstein"
let dollarSign = "\x24"
let balckHeart = "\u2665"
let sparkingHeart = "\U0001F496"

初始化空串:

// 下面这两个都是是空串,这两个是相等的
var emptyString = ""
var anotherEmptyString = String()

判断空串:

if emptyString.isEmpty {
  println("Nothing to see here")
}

字符串可变性:

把字符串赋值给一个变量,就可以修改,赋值给一个常量,就不能修改。

var variableString = "Horse"
variableString += " and carriage" // variableString is now "Horse and carriage"

let constantString = "Highlander"
constantString += "and another Highlander" // compile error

Strings是值类型而不是引用类型。

当创建一个新的字符串时,String值是copy的。

也就是说在传参数给函数或者方法,或者赋值给某个常量或者变量时,是copy一份。

字符串中的字符:Character类型

使用for-in循环:

// D

// o

// g

// !

// 这里没有显示指明类型,如果也可以显示指定:for character: Character in "Dog!"

for character in "Dog!" {
   println(character)
}

Swift提供了一个全局的计算元素个数的函数:countElements

let msg = "I am a boy, and I love Swift."
println("msg has \(countElements(msg) characters)")

NOTE

不同的Unicode字符和相同的Unicode字符的不同呈现会需要不同的内存来存储。正因为这样,在Swift中并不是字符串中每个

Character都占用相同的内存,因此计算字符串的长度时,需要遍历完整个字符串才能计算出来。

连接字符串和字符(使用+)

let str1 = "hello"
let str2 = " mimi"
let character1: Character = "!"
let character2: Character = "?"

let stringPlusCharacter = str1 + character1 // equals "hello!"
let stringPlusString = str1 + str2// equals "hello mimi"
let characterPlusString = character1 + str1 // equals "!hello"
let characterPlusCharacter = character1 + character2 // equals "!?"

使用 += 给已经存在的字符串追加字符串

var instroduction = "look over"
let str = ",I am here"
instroduction += str // 结果是instroduction变成了"look over,I am here"

NOTE

不能把字符串或者字符追加到字符(Character)中,因为字符只能包含单一字符.

字符串插入(String Interpolation)

let multiplier = 3
// 通过\(变量或者常量名)可以插入字符串
// 结果是:3 times 2.5 is 7.5
let message = "\(multiplier) times 2.5 is \(Double(multiplier) * 2.5)"

字符串比较:字符串相等、字符串前缀相关、字符串后缀相等

字符串相等是在两个字符串包含完全相同的字符且相同的顺序才是相等的。

如:

var quotaton = "We're a lot alike, you and I."
var sameQuotation = "We're a lot alike,you and I."
if quotaton == sameQuotation {
   println("They are equal strings")
}

前缀相等比较:

如:

let str = "I am your lover"
let anotherStr = "I am your lover two"

if anotherStr.hasPrefix(str) {
  println("\(anotherStr) has prefix \(str)")
}

后缀相等比较

如:

let str = "I am your lover"
let anotherStr = "really? I am your lover"

if anotherStr.hasSuffix(str) {
  println("\(anotherStr) has suffix \(str)")
}

字符串大小写转换(uppercase and lowercase strings)

如:

let normal = "Could you help me, please?"
let shouty = normal.uppercaseString
println(shouty)

let whispered = normal.lowercaseString
println(whispered)
时间: 2024-02-19 09:42:52

Swift学习之十:字符串与字符(Strings and Characters)的相关文章

Swift语言指南(十)--字符串与字符

原文:Swift语言指南(十)--字符串与字符 字符串是一段字符的有序集合,如"hellow,world"或"信天翁".Swift 中的字符串由 String 类型表示,对应着 Character 类型值的集合. Swift 中的 String 类型为你的编程提供了一个高速的,兼容 Unicode规范 的文本处理方式.Swift 创建和处理字符串的语法轻量可读,与 C 语言的字符串语法颇为相似.字符串的拼接非常简单,只需将两个字符串用 + 运算符相加.字符串的值是否

Swift语法专题四——字符串与字符

Swift解读专题四--字符串与字符 一.引言         Swift中提供了String类型与Characters类型来处理字符串和字符数据,Swift中的String类型除了提供了许多方便开发者使用的方法外,还可以与Foundation框架的NSString类进行转换,使用起来十分方便. 二.String基础         在Swift中,使用双引号来定义字符串,开发者可以通过如下代码来创建一个字符串常量: let str = "Hello, playground" 可以通过

Swift学习之十六:枚举(Enumeration)

Swift中的枚举与C.OC中的枚举有很大的区别,增加了原来类中都有的特性到枚举中. 定义枚举的语法: enum SimeEnum { // enumeration goes here } 定义一个指南针的四个方向的枚举: // 使用case来表示新成员的定义开始 enum CompassPoint { case North case South case East case West } // 使用枚举 var direction = CompassPoint.West // 再次修改时,可以

Swift学习之十四:闭包(Closures)

/* 闭包(Closures) * 闭包是自包含的功能代码块,可以在代码中使用或者用来作为参数传值. * 在Swift中的闭包与C.OC中的blocks和其它编程语言(如Python)中的lambdas类似. * 闭包可以捕获和存储上下文中定义的的任何常量和变量的引用.这就是所谓的变量和变量的自封闭, * 因此命名为"闭包"("Closures)").Swift还会处理所有捕获的引用的内存管理. * * 全局函数和嵌套函数其实就是特殊的闭包. * 闭包的形式有: *

Swift学习之十二:控制流

/* 控制流 for for-in while do-while */ let count = 5 for var i = 0; i < count; i++ { print("\(i)") } for i in 0..count { print("\(i)") } let base = 4 let power = 10 var answer = 1 // 使用_来忽略某个值 for _ in 1...power { answer *= base } // 访

Swift语言指南(十) Swift语言的字符串与字符

字符串是一段字符的有序集合,如"hellow,world"或"信天翁".Swift 中的字符串由 String 类型表示,对应着 Character 类型值的集合. Swift 中的 String 类型为你的编程提供了一个高速的,兼容 Unicode规范 的文本处理方式.Swift 创建和处理字符串的语法轻量可读,与 C 语言的字符串语法颇为相似.字符串的拼接非常简单,只需将两个字符串用 + 运算符相加.字符串的值是否可变取决于其为常量还是变量,这一点与 Swift

Swift入门篇-字符串和字符

原文:Swift入门篇-字符串和字符      今天主要是介绍一下字符串的用法 ,字符串的语法和object-c语法不太一样,但是思想是一样,就是写法不太一样.如果您对.net和java语法比较熟悉的话,那您几乎没有深压力.如果您对swift 基本类型不是清楚,请查阅. Swift入门篇-基本类型(1) Swift入门篇-基本类型(2) Swift入门篇-基本类型(3)   一:创建空字符串 //-------------定义一个空字符串第一种方法 var str1="" //----

Swift教程之字符串和字符详解_Swift

一个字符串String就是一个字符序列,像"hello,world","albatross"这样的.Swift中的字符串是用String关键词来定义的,同时它也是一些字符的集合,用Character定义. Swift的String和Character类型为代码提供了一个快速的,兼容Unicode的字符解决方案.String类型的初始化和使用都是可读的,并且和C中的strings类似.同时String也可以通过使用+运算符来组合,使用字符串就像使用Swift中的其他基

Strings And Characters Of Swift 2.1

原文出自:标哥的技术博客 前言 字符串是一系列的字符的集合.在Swift中,使用String类型表示字符串类型,而使用Character表示字符类型. Swift的String类型与Foundation中的NSString类型可以无缝桥接,因此可以随时互相转换.在实际开发中,有的时候我们会选择转换成NSString类型以使用其中的API. Swift版本:2.1 Xcode: 7.2 字符串字面量(String Literals) 在代码中包含一段预定义的字符串值作为字符串字面量.字符串字面量是