在学习Java过程中,字符串碰到过String和StringBuffer,当中前者是不可变的,不能对字符串进行改动;后者是可变的,能够不断改动。

来到Swift中,对字符串的定义变的更加简单。

(1)概述

Swift中,用let 声明的是字符串常量,不能进行改动。

用var声明的是字符串变量,能够改动。通过代码来演示。

let str1 = "Hello1"
var str2 = "Hello2"

str1 = "world1"//报错:cannot assign to 'let' value 'str1'
str2 = "world2"

str1 += "world1"//报错:binary operator '+=' cannot be applied to two String operands str1 += 'world1'
str2 += "world2"



由代码可见,let声明的字符串不可变,var声明的字符串可变。



(2)字符串初始化

Swift字符串有两种初始化方法。第一种方法是赋空值。另外一种是用String()类实例化。代码例如以下:

var str3=""
var str4 = String()



(3)字符串为空推断

有时候代码中须要推断一个字符串是否为空,能够使用isEmpty()方法。代码及输出例如以下:

var str1 = "Hello"
let str2 = "Hello"
var str3 = ""
var str4 = String()

str1.isEmpty  //输出false
str2.isEmpty  //输出false
str3.isEmpty  //输出true
str4.isEmpty  //输出true

swift get 方法传字符数组_swift get 方法传字符数组


 

     (4)使用for-in循环遍历字符串

var str1 = "Hello"
//使用for-in 循环遍历字符串
for index in str1{

    println(index)
}


输出结果例如以下:

swift get 方法传字符数组_字符串_02



(5)Swift字符

      同C语言一样。在Swift中也有字符的概念。使用keywordCharacter声明。代码例如以下:

var ch:Character = "h"
println(ch)

结果输出例如以下:

swift get 方法传字符数组_java_03


  

       当中字符串还能够使用append()方法加入一个字符,可是不能使用append()方法加入一个String。

代码例如以下:

var ch:Character = "h"

var str1:String = "Hello"
var str2:String = "World"

str1.append(ch)//通过
str1.append(str2)//报错:Cannot invoke 'append' with an argument list of type '(String)'

输出结果例如以下:

swift get 方法传字符数组_swift get 方法传字符数组_04



(6)字符串中+=运算符的使用

在字符串中有一个重要的运算符:+=,能够用来拼接两个字符串。可是不能拼接字符。

代码例如以下:

var ch:Character = "h"

var str1:String = "Hello"
var str2:String = "World"

str1 += str2//通过,能够连接两个字符串
str1 += ch//报错例如以下图:


swift get 方法传字符数组_swift_05



最后String拼接后输出结果:

swift get 方法传字符数组_java_06



(7)计算字符串长度

我使用的Xcode版本号是最新的Version 6.4(6E35b),可能在不同的Xcode版本号和Swift版本号中该方法会有所不同。网上说能够使用countElements(str),来计算字符串长度。可是亲測在我的这个版本号中不适用,Xcode6.4仅仅能使用count(str)方法来计算String长度。而且count()不能计算字符Character的 长度。由于字符默认是1,不须要计算。

大家能够在自己的环境上尝试countElements(),count() 两个方法。


代码例如以下:

var str1:String = "Hello"
var str2:String = "你好吗"

count(str1)
count(str2)


输出结果例如以下:

swift get 方法传字符数组_java_07