swift——字符串

字符

在Swift中,字符是字符串的基本组成单位,隶属于Character类型。字符可以是一个字母、数字、汉字或者符号,并使用双引号包裹住,例如“A” "1" "中" “*”等。字符定义的基本格式如下所示。

let/var 名称:Character = "值"
let ch:Character = "A"

常见的转义字符

\t    水平制表符
\n    换行
\r    回车
\"    双引号
\'    单引号
\\    反斜线

字符串

在Swift中,字符串是由N个字符连接而成的,字符串使用String类型表示,可以包含任意字符,并且这些字符必须包含在一对双引号之内。

初始化字符串

1.通过字面量赋值的方式初始化字符串

let tempString = "this is a temp string"

2.通过创建String实例的方式初始化字符串

let anotherString = String()

String类提供了一个isEmpty属性,用于判断字符串是否为空。

if anotherString.isEmpty{
      print("啥也没有")
}

字符串的基本操作

1.获取字符串的长度
第一种是调用lengthOfBytes方法,该方法用于获取字符串中字节的个数;另一种是直接计算字符的个数

import UIKit
let string = "HelloWorld"
let len1 = string.lengthOfBytes(using:Sting.Encoding.utf8)
print(len1)
let len2 = string.characters.count
printf(len2)

2.字符串的遍历

let string = "Hello World!"
for c in string.charcters{
        print(c)
}

3.连接字符串和字符
(1)使用加法赋值运算符连接字符串
通过使用加法赋值运算符(+=),可以将一个字符串连接到某个已经存在的可变字符串的末尾位置。

var varString = "hello,"
varString += "world"
print(varString)

(2)使用加法运算符拼接字符串
除了加法赋值运算符之外,还可以使用加法运算符(+)将两个或多个字符串相加在一起,创建一个新的字符串。

let string1 = "hello"
let string2 = "world"
var string3 = string1 + string2
print(string3)

(3)通过append方法追加字符串
通过调用append方法,将一个字符附加到一个可变字符串的尾部。

let character:Character = "!"
string3.append(character)
print(string3)

4.字符串插值
字符串插值是一种构建新字符串的方式,可以在其中包含常量、变量、字面量和表达式,插入的字符串字面量的每一项都在以反斜线为前缀的小括号中。

let multiplier = 3
// 将multiplier插入到字符串中
let message = "\(multiplier)乘以2.5等于\(Double(multiplier)*2.5)"
print(message)

需要注意的是,插值字符串中写在括号中的表达式不能包含非转义反斜杠(\)、回车符或换行符。
5.格式字符串

import UIKit
let hour = 8
let minute = 5
let seconds = 6
// 按照format的格式来显示arguments的内容
let dateString = String(format:"%02d:%02d:%02d",arguments:[hour,minute,seconds])
print(dateString)
// 按照format的格式拼接hour、minute、seconds的内容
let dateString2 = String(format:"%02d:%02d:%02d",hour,minute,seconds)
print(dateString2)

第6行调用的构造函数需要传入两个参数,format表示拼接字符串的格式,arguments表示用于拼接的内容;第10行调用的构造函数与第6行类似,只是第2个参数无须按照数组的形式传递,而是直接使用逗号将内容逐个添加到后面即可。
6.字符串的截取

import UIKit
let string = "HelloWorld"
// 将string转换为OC的字符串使用,并根据范围来截取子串
let subString = (string as NSString).substring(with:NSMakeRange(1,5))
print(subString)

7.字符串的比较
(1)比较字符或者字符串是否相等
比较字符或者字符串可以使用等于操作符(==)和不等于操作符。
(2)比较字符串的前缀和后缀
Swift提供了hasPrefix和hasSuffix两个方法,用来检查字符串是否拥有特定的前缀和后缀。
比较String和NSString
(1)String是一个结构体类型,而NSString是一个集成自NSObject基类的对象。
(2)两者都可以使用自己的类名直接进行初始化,从表面上看写法相同,但是NSString的意思是初始化了一个指针指向了这个字符串,但是String是把字符串的字面量赋值给常量和变量。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容

  • String是例如"hello, world","albatross"这样的有序的Character(字符)类型的...
    穷人家的孩纸阅读 851评论 2 1
  • 一个字符串 是一系列字符的集合,例如hello, world和albatross。Swift的字符串是String...
    BoomLee阅读 2,386评论 0 3
  • Swift的String类型是用Foundation的NSString类来桥接的。 Foundation还扩展了S...
    Joker_King阅读 1,835评论 0 1
  • 一.Swift字符串 Swift字符串是一系列字符的集合,例如:“Hello world!”这样的的有序字符类型的...
    Albert_Li99阅读 3,243评论 0 1
  • 年少的不知名,年老的不知姓 人生匆匆几十年,来来回回 寻寻觅觅百转千回不知何味 赤裸裸的来一身轻松的归去 有过梦想...
    筱鈺1993阅读 407评论 1 1