Swift3.0字符串相关操作
以下有关字符串的常用操作都可直接复制到Xcode中进行验证,如发现错误,请在评论区留言指正!
1.字符串的定义
var str1="hello, swift." //字符串变量 相当于OC中的可变字符串
let str2="hello, swift." //字符串常量 相当于OC中的不可变字符串
let str3="" //空字符串
let str4=String() //空字符串
2.字符串的连接
2.1 使用+连接符
//字符串的连接
let str1 = "hello"
let str2 = "swift"
let str3 = str1 + str2
print(str3)
2.2 使用字符串插值(该方法也可用于字符串与其他类型值的连接)
let str1 = "hello"
let str2 = "swift"
let str4 = "\(str1)\(str2)"
print(str4)
3.字符串枚举字符
let str="伊丽莎白"
for ch in str.characters{
print(ch)
}
4.字符串长度
//字符串的长度
let str1 = "hello swift"
print(str1.characters.count)
5.字符串的比较
//字符串的比较 判断两个字符串是否相等
let str1 = "hello"
let str2 = "hello"
if str1 == str2{
print("两个字符串是相等的")
}else{
print("两个字符串不相等")
}
6.判断是否包含子串
//判断字符串是否包含子串
let str1 = "hello swift"
let str2 = "SWIFT"
let lmrRange = str1.range(of: str2)//正向查找
let rmlRange = str1.range(of: str2, options: .backwards)//反向查找
let ignore_Text_transformRange = str1.range(of:str2, options: .caseInsensitive, range:nil , locale:nil)//忽略大小写
if ignore_Text_transformRange != nil{
print("str1中包含着子串")
}else{
print("str1中不包含子串")
}
7.首字母大写capitalized
//首字母大写
let str1 = "hello"
let str2 = str1.capitalized
print(str2)
8.字符串全部转为大写uppercase
//字符串转为大写
let str1 = "hello"
let str2 = str1.uppercased()
print(str2)
9.字符串全部转为小写lowrecase
//字符串转为小写
let str1 = "HELLO"
let str2 = str1.lowercased()
print(str2)
10.按照下标截取子字符串
//字符串截取子字符串
let str1 = "HELLO swift"
let str2 = str1.substring(from: str1.startIndex)//从头开始截取
let str3 = str1.substring(to: str1.endIndex)//截取到尾部
//获取截取范围
let i = str1.index(str1.startIndex, offsetBy: 4)
let j = str1.index(str1.startIndex, offsetBy: 8)
let str4 = str1.substring(with: i..<j)
print(str2)
print(str3)
print(str4)
11.字符串修整trim
var str1 = " !hi? !23? !???"
let str2 = str1.trimmingCharacters(in: NSCharacterSet.whitespaces)//"!hi !23 !"去掉两边的空格
let str3 = str2.trimmingCharacters(in: NSCharacterSet(charactersIn:"!?") as CharacterSet)//"hi !23" 去掉两边的空格和‘!’ ,把 字符串中的每个字符进行了分解并去除
print(str3)
注意:这里是只能修整两边的,只能修整两边的
12.字符串分解split
//字符串的分解split
var str1 = "hello,swift,you,change,so,fast,!"
let strArray1:[String] = str1.components(separatedBy: ",")
for index in strArray1{
print(index)
}
var str2 = "hello,swift?goodbye,swift?!"
let strArray2:[String] = str2.components(separatedBy: NSCharacterSet(charactersIn:",?") as CharacterSet)
for index in strArray2{
print(index)
}
13.字符串替换replace
//字符串替换replace
var str1 = "hello Object-C,you change so fast!"
let str2 = str1.replacingOccurrences(of: "Object-C", with: "swift")//字符串替换字符串
let i = str1.index(str1.startIndex, offsetBy: 6)
let j = str1.index(str1.startIndex, offsetBy: 14)
let str3 = str1.replacingCharacters(in: i..<j), with: "swift")//字符串替换某个范围的字符串
let str4 = str1.replacingOccurrences(of: "OBJECt-C", with: "SWIFT", options: .caseInsensitive, range: nil)//忽略大小写替换
print(str2)
print(str3)
print(str4)
Swift3.0字符串相关操作的更多相关文章
- python字符串、字符串处理函数及字符串相关操作
python字符串.字符串处理函数及字符串相关操作 字符串介绍 python字符串表示 Python除处理数字外还可以处理字符串,字符串用单撇号或双撇号包裹: >>> 'spam e ...
- Swift3.0字符串大小写转化
Swift3.0语言教程字符串大小写转化,在字符串中,字符串的格式是很重要的,例如首字母大写,全部大写以及全部小写等.当字符串中字符很多时,通过人为一个一个的转换是很费时的.在NSString中提供了 ...
- Python_字符串相关操作
1.字符串切片操作: str1='hello word' startIndex=0 #开始索引位置 endIndex=5 #结束索引位置+1 step=2 #步长 print(str1[startIn ...
- Python3中的字符串相关操作
Python3的字符串操作相关函数详解 字符串内建函数 1. capitalize() 将字符串中的第一个字符转换成大写,其他字母变成小写.例: >>> "hello Wo ...
- Python 字符串相关操作
# 1 * 重复输出字符串 print('hello'*2) # 2 [] ,[:] 通过索引获取字符串中字符,这里和列表的切片操作是相同的,具体内容见列表 print('helloworld'[2: ...
- 初学Python——字符串相关操作
基本字符串操作 Pyhton中字符串的格式化输出在前面已经总结了,接下来介绍一些常用的字符串操作 先定义一个字符变量,以下的操作都以此为例: name=" my name is china ...
- python字符串相关操作
字符串搜索相关搜索指定字符串,没有返回-1:str.find('t')指定起始位置搜索:str.find('t',start)指定起始及结束位置搜索:str.find('t',start,end)从右 ...
- [ES6系列-05]字符串相关操作更方便
[原创] 码路工人 Coder-Power 大家好,这里是码路工人有力量,我是码路工人,你们是力量. github-pages 博客园cnblogs 今天的内容是,关于 ES6 JavaScript ...
- [C++]字符串相关操作
获取字符串长度 String str str.length(); //获取String类型字符串长度 str.size(); //STL获取容器中元素个数 Char* s strlen(s); //以 ...
随机推荐
- CentOS7 修改网卡名称
vi /etc/sysconfig/grub 增加net.ifnames=0 biosdevname=0 执行:grub2-mkconfig -o /boot/grub2/grub.cfg
- SQLAlchemy-对象关系教程ORM-create
ORM是建立在SQL语言构造器之上的工具集,用于将Python对象映射到数据库的行,提供了一系列接口用于从数据库中存取对象(行).在ORM 工作时,在底层调用SQL语言构造器的API,这些通用的操作有 ...
- Nginx - buffer缓冲区部分
目录- 1. 前言- 2. 指令- 3. 原理及总结 1. 前言 关于缓冲,主要是合理设置缓冲区大小,尽量避免缓冲到硬盘 2. 指令 proxy_buffering 说明:proxy_bufferin ...
- python面向对象(二)之封装
封装定义: 在程序设计中,封装(Encapsulation)是对具体对象的一种抽象,即将某些部分隐藏起来,在程序外部看不到,其含义是其他程序无法调用. 即"封装"就是将抽象得到的数 ...
- 关闭linux退格键和vi发出的嘟嘟声
以root用户登录,然后请安下面方法进行操作: 在命令行下执行:echo "rmmod pcspkr" >> /etc/rc.d/rc.local
- IEEEXtreme 极限编程大赛题解
这是 meelo 原创的 IEEEXtreme极限编程大赛题解 IEEEXtreme全球极限编程挑战赛,是由IEEE主办,IEEE学生分会组织承办.IEEE会员参与指导和监督的.IEEE学生会员以团队 ...
- spring boot配置文件中 spring.mvc.static-path-pattern 配置项
spring boot项目中的静态资源文件存放在static文件下面,当通过浏览器访问这些静态文件时,发现必须要添加static作为前缀才能访问,折腾了一番后发现,这个前缀跟 spring.mvc.s ...
- mac 用密钥远程登陆
window远程登陆命令:mstsc A为本地主机(即用于控制其他主机的机器) ;B为远程主机(即被控制的机器Server), 假如ip为192.168.60.110;A和B的系统都是Linux 在A ...
- MyISAM InnoDB 区别(转载)
MyISAM 和 InnoDB 讲解 InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定.基本的差别为:MyISAM类型不支持事务处理等高级处 ...
- 数据挖掘算法:关联分析二(FP-tree算法)
三.FP-tree算法 下面介绍一种使用了与Apriori完全不同的方法来发现频繁项集的算法FP-tree.FP-tree算法在过程中没有像Apriori一样产生候选集,而是采用了更为紧凑的数据结构组 ...