您的位置:首页 > 移动开发 > Swift

Swift中文教程(三) 字符串和字符

2014-06-04 16:30 411 查看
by
史薇芙特 · 2014年6月4日

一个字符串String就是一个字符序列,像”hello,world”,”albatross”这样的。Swift中的字符串是用String关键词来定义的,同时它也是一些字符的集合,用Character定义。

Swift的String和Character类型为代码提供了一个快速的,兼容Unicode的字符解决方案。String类型的初始化和使用都是可读的,并且和C中的strings类似。同时String也可以通过使用+运算符来组合,使用字符串就像使用Swift中的其他基本类型一样简单。

1、字符串常量

在代码中可以使用由String预先定义的字符串常量,定义方式非常简单:

let someString = “Some string literal value”

字符串常量可以包括下面这些特殊字符:

空字符\0,反斜杠\,制表符\t,换行符\n,回车符\r,双引号\”和单引号\’

单字节Unicode字符,\xnn,其中nn是两个十六进制数

双字节Unicode字符,\unnnn,其中nnnn是四个十六进制数

四字节Unicode字符,\Unnnnnnnn,其中nnnnnnnn是八个十六进制数

下面的代码给出了这四种字符串的例子:

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″ // , Unicode scalar U+1F496

2、初始化一个空串

初始化一个空串时有两种形式,但是两种初始化方法的结果都一样,表示空串

var emptyString = “” // empty string literal

var anotherEmptyString = String() // initializer syntax

// these two strings are both empty, and are equivalent to each other

通过isEmpty属性可以检查一个字符串是否为空

if emptyString.isEmpty {

println(“Nothing to see here”)

}

// prints “Nothing to see here”

3、变长字符串

如果使用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

4、字符串不是指针,而是实际的值

在Swift中,一个String类型就是一个实际的值,当定义一个新的String,并且将之前的String值拷贝过来的时候,是实际创建了一个相等的新值,而不是仅仅像指针那样指向过去。

同样在函数传递参数的时候,也是传递的实际值,并且创建了一个新的字符串,后续的操作都不会改变原有的String字符串。

5、字符

Swift的字符串String就是由字符Character组成的,每一个Character都代表了一个特定的Unicode字符。通过for-in循环,可以遍历字符串中的每一个字符:

for character in “Dog!” {

println(character)

}

// D

// o

// g

// !

//

你也可以仅仅定义一个单独的字符:

let yenSign: Character = “¥”

6、字符计数

使用全局函数countElements可以计算一个字符串中字符的数量:

let unusualMenagerie = “Koala , Snail , Penguin , Dromedary ”

println(“unusualMenagerie has (countElements(unusualMenagerie)) characters”)

// prints “unusualMenagerie has 40 characters”

7、组合使用字符和字符串

String和Character类型可以通过使用+号相加来组合成一个新的字符串

let string1 = “hello”

let string2 = ” there”

let character1: Character = “!”

let character2: Character = “?”

let stringPlusCharacter = string1 + character1 // equals “hello!”

let stringPlusString = string1 + string2 // equals “hello there”

let characterPlusString = character1 + string1 // equals “!hello”

let characterPlusCharacter = character1 + character2 // equals “!?”

也可以使用+=号来组合:

var instruction = “look over”

instruction += string2

// instruction now equals “look over there”

var welcome = “good morning”

welcome += character1

// welcome now equals “good morning!”

8、使用字符串生成新串

通过现有的字符串,可以使用如下方法来生成新的字符串:

let multiplier = 3

let message = “(multiplier) times 2.5 is (Double(multiplier) * 2.5)”

// message is “3 times 2.5 is 7.5″

在上面这个例子中,首先使用multiplier这个字符串3,来作为新串的一部分,用(multiplier)添加,同时上面的例子还用到了类型转换Double(multiplier),将计算结果和字符串本身都作为元素添加到了新的字符串中。

感谢翻译小组成员:李起攀(微博)、若晨(微博)、Tiger大顾(微博)

翻译进行中,预计4日晚更新完毕,敬请期待~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: