文档章节

Swift3.0语言教程比较、判断字符串

大学霸
 大学霸
发布于 2016/11/11 11:04
字数 2121
阅读 93
收藏 0
点赞 0
评论 0

Swift3.0语言教程比较、判断字符串

Swift3.0语言教程比较、判断字符串,在一个程序中字符串很多时,常常会做的操作就是对这些字符串进行比较和判断。本小节将讲解这些内容。

1.不区分大小写比较

字符串比较可以分为:不区分大小写比较、区分大小写比较以及本地化比较三部分。首先我们来看不区分大小写比较,不区分大小写比较顾名思义就是不区分字符串中字母的大小写,即A和a相同。在NSString中使用caseInsensitiveCompare(_:)方法实现这一功能,其语法形式如下:

func caseInsensitiveCompare(_ string: String) -> ComparisonResult

其中,string用来指定一个比较的字符串。该方法的返回值为ComparisonResult类型。ComparisonResult是一个枚举类型,包含了以下3个成员:

q  orderedAscending(-1):左操作数小于右操作数。

q  orderedSame(0):两个操作数相等。

q  orderedDescending(1):左操作数大于右操作数。

【示例1-29】以下将使用caseInsensitiveCompare(_:)方法对字符串进行比较。

import Foundation

var a=NSString(string:"Hello")

var b=NSString(string:"hello")

var c=NSString(string:"Swift")

//比较字符串

print(a.caseInsensitiveCompare(b as String).rawValue)

print(a.caseInsensitiveCompare(c as String).rawValue)

print(c.caseInsensitiveCompare(a as String).rawValue)

运行结果如下:

0

-1

1

2.区分大小写比较

有不区分大小写比较,相对的就有区分大小写比较。在NSString中提供了4种方法实现了这种比较,分别为compare(_:)、compare(_:options:)、compare(_:options:range:)和compare(_:options:range:locale:)方法。

(1)compare(_:)方法就是用来比较字符串的,它需要区分字符串的大小写,其语法形式如下:

func compare(_ string: String) -> ComparisonResult

其中,string用来指定一个比较的字符串。

【示例1-30】以下将使用compare(_:)方法实现字符串的比较。

import Foundation

var a=NSString(string:"Hello")

var b=NSString(string:"hello")

var c=NSString(string:"Hello")

//比较字符串

print(a.compare(b as String).rawValue)

print(a.compare(c as String).rawValue)

print(b.compare(a as String).rawValue)

运行结果如下:

-1

0

1

(2)compare(_:options:)方法和compare(_:)方法实现的功能类似,它是对字符串进行比较,但是它比compare(_:)方法多了一个mask参数。该参数可以用来指定一个选项标记(这个标记可以作为字符串比较的条件)。在编程中,mask参数最常被设置为以下5种:

q  caseInsensitive:不区分大小写比较

q  literal:区分大小写比较

q  backwards:从字符串末尾开始搜索

q  anchored:搜索限制范围的字符串

q  numeric:按照字符串里的数字为依据,算出顺序。例如 Foo2.txt < Foo7.txt < Foo25.txt

compare(_:options:)方法的语法形式如下:

func compare(_ string: String, options mask: NSString.CompareOptions = []) -> ComparisonResul

【示例1-31】以下将使用compare(_:options:)方法实现对字符串的比较。

import Foundation

var a=NSString(string:"Hello")

var b=NSString(string:"hello")

print(a.compare(b as String, options: NSString.CompareOptions.caseInsensitive).rawValue)    //比较字符串

运行结果如下:

0

(3)compare(_:options:range:)方法和compare(_:options:)方法的功能类似,但是它比compare(_:options:)方法多了一个rangeOfReceiverToCompare参数,此参数可以用来对比较范围进行设置。其语法形式如下:

func compare(_ string: String, options mask: NSString.CompareOptions = [], range rangeOfReceiverToCompare: NSRange) -> ComparisonResult

【示例1-32】以下将使用compare(_:options:range:)方法对字符串进行比较。

import Foundation

var a=NSString(string:"HEllo")

var b=NSString(string:"Swift")

print(a.compare(b as String, options: NSString.CompareOptions.caseInsensitive,range: NSMakeRange(1, 3)).rawValue)                                                                                   //比较字符串

运行结果如下:

-1

(4)compare(_:options:range:locale:)方法和compare(_:options:range:)方法的功能类似,但是它比compare(_:options:range:)方法多了一个locale参数,此参数可以用来设置语言环境。其语法形式如下:

func compare(_ string: String, options mask: NSString.CompareOptions = [], range rangeOfReceiverToCompare: NSRange, locale: AnyObject?) -> ComparisonResult

【示例1-33】以下将使用compare(_:options:range:locale:)方法对字符串进行比较。

import Foundation

var a=NSString(string:"a")

var b=NSString(string:"ä")

var l=Locale.current

print(a.compare(b as String, options: NSString.CompareOptions.caseInsensitive, range: NSMakeRange(0, 1), locale: l).rawValue)

运行结果如下:

-1

3.本地化比较

对于本地化比较在NSString中提供了3种方法,分别为:localizedCaseInsensitiveCompare(_:)、localizedStandardCompare(_:)和localizedCompare(_:)。

(1)localizedCaseInsensitiveCompare(_:)方法为不区分大小写、本地化比较字符串,其语法形式如下:

func localizedCompare(_ string: String) -> ComparisonResult

其中,string用来指定一个比较的字符串。

【示例1-34】以下将使用localizedCaseInsensitiveCompare(_:)方法比较字符串。

import Foundation

var a=NSString(string:"Hello")

var b=NSString(string:"hello")

var c=NSString(string:"Swift")

//比较字符串

print(a.localizedCaseInsensitiveCompare(b as String).rawValue)

print(a.localizedCaseInsensitiveCompare(c as String).rawValue)

print(c.localizedCaseInsensitiveCompare(a as String).rawValue)

运行结果如下:

0

-1

1

(2)localizedStandardCompare(_:)方法为本地化标准字符串的比较,其语法形式如下:

func localizedStandardCompare(_ string: String) -> ComparisonResult

其中,string用来指定一个比较的字符串。

【示例1-35】以下将使用localizedStandardCompare(_:)方法实现字符串的比较。

import Foundation

var a=NSString(string:"Hello")

var b=NSString(string:"hello")

print(a.localizedStandardCompare(b as String).rawValue)                                         //比较字符串

运行结果如下:

1

(3)localizedCompare(_:)方法是区分大小写、本地化比较字符串,其语法形式如下:

func localizedCompare(_ string: String) -> ComparisonResult

其中,string用来指定一个比较的字符串。

【示例1-36】以下将使用localizedCompare(_:)方法实现对字符串的比较。

import Foundation

var a=NSString(string:"Hello")

var b=NSString(string:"hello")

var c=NSString(string:"Hello")

print(a.localizedCompare(b as String).rawValue)

print(a.localizedCompare(c as String).rawValue)

print(b.localizedCompare(a as String).rawValue)

运行结果如下:

1

0

-1

4.判断字符串

在NSString中提供了3种对字符串判断的方法,分别为hasPrefix(_:)、hasSuffix(_:)和isEqual(to:)方法。

(1)hasPrefix(_:)方法用来判断字符串是否以某一指定字符串开头,其语法形式如下:

func hasPrefix(_ str: String) -> Bool

其中,str用来指定一个字符串。

【示例1-37】以下将判断字符串a是否以"H"、"Hel"和"Hele"开头。

import Foundation

var a=NSString(string:"Hello")

//判断字符串a是否以"H"开头

if(a.hasPrefix("H")){

    print("a字符串是以H开头的")

}else{

    print("a字符串不是以H开头的")

}

//判断字符串a是否以"Hel"开头

if(a.hasPrefix("Hel")){

    print("a字符串是以Hel开头的")

}else{

    print("a字符串不是以Hel开头的")

}

//判断字符串a是否以"Hele"开头

if(a.hasPrefix("Hele")){

    print("a字符串是以Hele开头的")

}else{

    print("a字符串不是以Hele开头的")

}

运行结果如下:

a字符串是以H开头的

a字符串是以Hel开头的

a字符串不是以Hele开头的

(2)hasSuffix(_:)方法正好和hasPrefix(_:)方法相反,它是用来判断字符串是否以某一指定字符串结尾的,其语法形式如下:

func hasSuffix(_ str: String) -> Bool

其中,str用来指定一个字符串。

【示例1-38】以下将判断字符串a是否以"o"、"Hello"、"allo"结尾。

import Foundation

var a=NSString(string:"Hello")

//判断字符串a是否以"o"结尾。

if(a.hasSuffix("o")){

    print("a字符串是以o结尾的")

}else{

    print("a字符串不是以o结尾的")

}

//判断字符串a是否以"Hello"结尾。

if(a.hasSuffix("Hello")){

    print("a字符串是以Hello结尾的")

}else{

    print("a字符串不是以Hello结尾的")

}

//判断字符串a是否以"allo"结尾。

if(a.hasSuffix("allo")){

    print("a字符串是以allo结尾的")

}else{

    print("a字符串不是以allo结尾的")

}

运行结果如下:

a字符串是以o结尾的

a字符串是以Hello结尾的

a字符串不是以allo结尾的

(3)isEqual(to:)方法是用来判断字符串是否相等的,其语法形式如下:

func isEqual(to aString: String) -> Bool

其中,aString用来指定字符串。

【示例1-39】以下将判断字符串是否相等。

import Foundation

var  a=NSString(string:"Hello")

var  b=NSString(string:"hello")

var  c=NSString(string:"Swift")

var  d=NSString(string:"Hello")

//判断字符串a和b是否相等

if(a.isEqual(to: b as String)){

    print("a、b两个字符串相等")

}else{

    print("a、b两个字符串不相等")

}

//判断字符串a和c是否相等

if(a.isEqual(to: c as String)){

    print("a、c两个字符串相等")

}else{

    print("a、c两个字符串不相等")

}

//判断字符串a和d是否相等

if(a.isEqual(to: d as String)){

    print("a、d两个字符串相等")

}else{

    print("a、d两个字符串不相等")

}

运行结果如下:

a、b两个字符串不相等

a、c两个字符串不相等

a、d两个字符串相等

相关阅读:Swift3.0语言教程获取字符串编码与哈希地址

© 著作权归作者所有

共有 人打赏支持
大学霸
粉丝 248
博文 865
码字总数 557014
作品 0
东城
程序员
Swift3.0语言教程获得一个公共的前缀

Swift3.0语言教程获得一个公共的前缀 Swift3.0语言教程获得一个公共的前缀,当在一个程序中有多个字符串时,我们需要判断是否有两个字符串有公共的前缀时,是很困难的。在NSString中的commo...

大学霸
2016/11/04
11
0
Swift3.0语言教程删除字符与处理字符编码

Swift3.0语言教程删除字符与处理字符编码 Swift3.0语言教程删除字符 Swift3.0语言教程删除字符与处理字符编码,在字符串中,如果开发者有不需要使用的字符,就可以将这些字符删除。在NSStrin...

大学霸
2016/11/17
86
1
Swift3.0语言教程使用URL字符串

Swift3.0语言教程使用URL字符串 Swift3.0语言教程使用URL字符串,和路径一样,URL其实也是字符串,我们可以将这些字符串称为URL字符串。本小节将讲解URL字符串的使用。 1.编码 现在的网络存在...

大学霸
2016/11/18
75
0
Swift3.0语言教程字符串与URL的数据转换与自由转换

Swift3.0语言教程字符串与URL的数据转换与自由转换 Swift3.0语言教程字符串与URL的数据转换 Swift3.0语言教程字符串与URL的数据转换与自由转换,字符串中的字符永久保存除了可以保存在文件中...

大学霸
2016/11/21
41
0
Swift3.0语言教程使用Unicode范式标准化获取字符串

Swift3.0语言教程使用Unicode范式标准化获取字符串 Swift3.0语言教程使用Unicode范式标准化获取字符串,在NSString中可以使用4个属性去使用Unicode范式标准化获取字符串。这四个属性分别为:...

大学霸
2016/11/08
37
0
Swift3.0语言教程获取字符

Swift3.0语言教程获取字符 Swift3.0语言教程获取字符,在字符串中获取某一下标位置(下标索引)处的字符是很常见的功能,在NSString中使用character(at:)方法实现,其语法形式如下: func c...

大学霸
2016/10/28
6
0
Swift3.0语言教程组合字符串

Swift3.0语言教程组合字符串 Swift3.0语言教程组合字符串,当开发者想要将已经存在的字符串进行组合,形成一个新的字符串,可以使用NSString中的两个方法,分别为appending(:)和padding(toL...

大学霸
2016/11/14
0
0
Swift3.0语言教程获取字符串编码与哈希地址

Swift3.0语言教程获取字符串编码与哈希地址 Swift3.0语言教程获取字符串编码与哈希地址,以下将讲解字符串中其它内容的获取方法。 1.获取字符串编码 在NSString中可以使用2个属性获取字符串编...

大学霸
2016/11/10
9
0
Swift3.0语言教程字符串转换为数字值

Swift3.0语言教程字符串转换为数字值 Swift3.0语言教程字符串转换为数字值,在NSString中,开发者可以将字符串转换为数字值,通过这些数字值可以实现一些功能,如加法运算、减法运算等。数字...

大学霸
2016/11/18
111
0
Swift3.0语言教程获取C字符串

Swift3.0语言教程获取C字符串 Swift3.0语言教程获取C字符串,为了让Swift和C语言可以实现很好的交互,开发者可以使用NSString的cString(using:)方法在指定编码格式后,获取C字符串,其语法形...

大学霸
2016/10/31
18
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Service Mesh所应对的8项挑战

Lori Macvittie 微服务架构是把双刃剑,我们享受它带来的开发速度(development velocity),却也不得不面对服务间通讯带来的复杂性问题。 目前大多数扩展容器化微服务的架构多是基于proxy-b...

好雨云帮
14分钟前
0
0
时间复杂度

1. 维基上的定义 在计算机科学中,算法的时间复杂度是一个函数,它定性描述该算法的运行时间。这是一个代表算法输入值的字符串的长度的函数。时间复杂度常用大O符号表述,不包括这个函数的低...

liuyan_lc
20分钟前
0
0
js中的~符

~是js里的按位取反操作符,~~就是执行两次按位取反,其实就是保持原值,但是注意虽然是原值,但是对布尔型变量执行这个操作,会转化成相应的数值型变量,也就是 ~~true === 1,~~false === 0...

JamesView
21分钟前
0
0
webpack安装

npm install --save-dev webpack-cli

Vincent-Duan
23分钟前
0
0
实时监听EditText内容变化

主要是addTextChangedListener方法的使用 aswerEdittext.addTextChangedListener(new TextWatcher() { //编辑框的内容发生改变之前的回调方法 @Override public void before...

王先森oO
26分钟前
0
0
python连接mysql数据库

安装好必要的pymysql插件 pip install pymysql 写好配置文档 DATABASES = { # 'default': { # 'ENGINE': 'django.db.backends.sqlite3', # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), #......

南桥北木
28分钟前
0
0
linux下安装 Zookeeper

Zookeeper 注册中心安装 安装: wget http://www.apache.org/dist/zookeeper/zookeeper-3.3.3/zookeeper-3.3.3.tar.gztar zxvf zookeeper-3.3.3.tar.gzcd zookeeper-3.3.3cp conf/zoo_......

颖辉小居
30分钟前
0
0
C#判断文件的真实类型(非扩展名判断)

public static void CheckFileType() { string path = @"D:\word.doc"; System.IO.FileStream fs = new System.IO.FileStream(path, System.IO.FileMode.Open, System.IO.FileAccess.Read); ......

Lytf
31分钟前
0
0
java - 把日志生成到指定目录

1.按天小时生成日志文件 log4j.appender.ruiming.DatePattern='_'yyyy-MM-dd-HH 2.最大日志文件数据 log4j.appender.ruiming.MaxBackupIndex=100 3.下图画圈圈的很关键,是生成到知道目录必备...

轻量级赤影
32分钟前
0
0
少走弯路,给Java 1~5 年程序员的建议

今天LZ是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈每个阶段要学习的内容甚至是一些书籍。这一部分的内容,同样适用于一些希望转行到Java的同学。 在大家看之前,LZ要先声...

Java填坑之路
32分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部