Swift初探03 字符串操作
字符串操作
01 获取长度
var a = "he l lo"
print(a.count) // 计算空格,输出7
02 String.Index类型
String.Index类型表示字符串内某一个字符的位置。
可以利用a[String.Index]来获取某一个位置的字符。
var a = "hello"
print(a.startIndex) // 输出Index(_rawBits: 1)
print(a[a.startIndex]) // 获取字符串第一位,输出h
如何输出最后一位呢?
print(a[a.endIndex]) // 报错,因为endIndex的位置是字符串的结束符,并不是看到的最后一个字符可以用
a.index(before: String.Index)和a.index(after: String.Index)分别获取某一个位置的前一位和后一位。a[a.index(before: a.endIndex)]就可以获取到字符串最后一个字符。如何输出指定的某一位?
a[a.index(a.startIndex, offsetBy: 2)],意为:从a.startIndex开始,往后数两位。如果offsetBy后面使用了一个负数,那么就是从后往前数。
输出某一段的字符
var begin = a.index(a.startIndex, offsetBy: 1)
var end = a.index(a.startIndex, offsetBy:4)
print(str[begin...end]) // 输出ello
或者使用prefix(Int)方法来获取前n个字符:
var str = a.prefix(2)
print(str) // 输出he
如何找到第一次出现某字符的位置
a.firstIndex(of: "e")
03 增删改查
1. 查
判断字符是否在字符串中
使用
contains(Char)方法:(大小写敏感)var str = "hello"
print(str.contains("h")) // true
print(str.contains("hel")) // true
也可以使用
contains(where: String.contains(""))方法:(这种方法只要有一个包含就返回真值)var str = "hello"
print(str.contains(where: String.contains("ae"))) // true
判断字符串的开头或结尾是否是某字符
可使用
hasPrefix("")判断开头var str = "hello"
print(str.hasPrefix("h")) // true
print(str.hasPrefix("he")) // true
print(str.hasPrefix("e")) // false
使用
hasSuffix()判断结尾var str = "hello"
print(str.hasPrefix("o")) // true
print(str.hasPrefix("lo")) // true
print(str.hasPrefix("ol")) // false
2. 增
字符串结尾增加新字符串
append()即可:var str = "hello"
str.append(" world") // hello world
在某个位置增加某段字符串
insert(contentsOf: str, at: String.Index)可以在at位置的前面插入str:var str = "hello"
str.insert(contentsOf: "AAA", at: str.startIndex) // AAAhello
3. 改
替换某一字段
replaceSubrange(section, with: "lalala")section是String.Index的区间范围,替换为"lalala":var str = "hello"
let section = str.startIndex...str.index(str.endIndex, offsetBy: -2)
str.replaceSubrange(section, with: "lalala") // "lalalao"
也可以使用
replacingOccurrences(of: str, with: "jj")将str字段替换为"jj":var str = "hello"
str.replacingOccurrences(of: "ll", with: "jj") // "hejjo"
如果没有该字段,则不替换
4. 删
删除某位置的字符
remove(at: String.Index)var str = "hello"
str.remove(at: str.index(str.startIndex, offsetBy: 2)) // l
print(str) // helo
删除某字段
removeSubrange(String.Index...String.Index)var str = "hello"
str.removeSubrange(str.startIndex...str.index(str.endIndex, offsetBy: -2))
print(str) // o
04 利用for循环遍历字符串
直接遍历
var str = "hello"
for item in str {
print(item)
}
使用index()方法来遍历
var str = "hello"
for item in 0..<str.count {
print(str[str.index(str.startIndex, offsetBy: item)])
}
Swift初探03 字符串操作的更多相关文章
- .NET面试题解析(03)-string与字符串操作
系列文章目录地址: .NET面试题解析(00)-开篇来谈谈面试 & 系列文章索引 字符串可以说是C#开发中最常用的类型了,也是对系统性能影响很关键的类型,熟练掌握字符串的操作非常重要. 常 ...
- Swift初探01 变量与控制流
Swift初探01 变量与控制流 输出"hello world"是几乎学习所有编程语言的第一课,这是程序员的情怀. 所以我们学习swift的第一步,就是输出一句"Hell ...
- Python 字符串操作及string模块使用
python的字符串操作通过2部分的方法函数基本上就可以解决所有的字符串操作需求: python的字符串属性函数 python的string模块 1.字符串属性方法操作: 1.>字符串格式输出对 ...
- 李洪强iOS开发Swift篇—03_字符串和数据类型
李洪强iOS开发Swift篇—03_字符串和数据类型 一.字符串 字符串是String类型的数据,用双引号""包住文字内容 let website = "http:// ...
- 初探Java字符串
转载: 初探Java字符串 String印象 String是java中的无处不在的类,使用也很简单.初学java,就已经有字符串是不可变的盖棺定论,解释通常是:它是final的. 不过,String是 ...
- mysql之字符串操作
写在前面 上篇文章学习了mysql常用的日期操作的函数,这篇文章将学习mysql的字符串操作的函数. 系列文章 mysql之创建数据库,创建数据表 mysql之select,insert,delete ...
- VC++ 字符串操作学习总结
vc++中各种字符串(转载) http://www.cnblogs.com/tomin/archive/2008/12/28/1364097.html CString ,BSTR ,LPCTSTR之间 ...
- OMG,12 个精致的 Java 字符串操作小技巧,学它
字符串可以说是 Java 中最具有代表性的类了,似乎没有之一哈,这就好像直播界的李佳琪,脱口秀中的李诞,一等一的大哥地位.不得不承认,最近吐槽大会刷多了,脑子里全是那些段子,写文章都有点不由自主,真的 ...
- python学习笔记(字符串操作、字典操作、三级菜单实例)
字符串操作 name = "alex" print(name.capitalize()) #首字母大写 name = "my name is alex" pri ...
随机推荐
- freeswitch对接WEBRTC的一个candidate问题
概述 近几年,WEBRTC的完善与成熟,使得网页上使用webrtc的应用越来越多. Freeswitch是一个开源的软交换平台,可以直接支持webrtc的对接方式. 最近在测试fs和webrtc的对接 ...
- ubuntu中有关环境变量的问题
ubuntu查看环境变量方法 在Ubuntu中,我们可以使用三个命令来查看当前环境变量的设置,以确定我们有没有把路径加载到环境变量中去.我们 可以使用env,export,或者echo $path, ...
- c语言中的字面量
在计算机科学中,字面量(literal)是用于表达源代码中一个固定值的表示法(notation). 几乎所有计算机编程语言都具有对基本值的字面量表示,诸如:整数.浮点数以及字符串: 而有很多也对布尔类 ...
- CSS详细解读定位
一 前言 CSS定位是CSS布局只能够重要的一环.本篇文章带你解读定位属性,可以让你更加深入的理解定位带来的一些特性,熟练使用CSS布局. 二 正文 1.文档流布局的概念 将窗体自上而下分成一行行, ...
- html5网页录音和语音识别
背景 在输入方式上,人们总是在追寻一种更高效,门槛更低的方式,来降低用户使用产品的学习成本.语音输入也是一种尝试较多的方式,有些直接使用语音(如微信语音聊天),有些需要将语音转化为文字(语音识别).接 ...
- Html5 Canvas学习之路(五)
Canvas 图像(上) Canvas 图像API可以加载图像数据,然后直接将图像应用到画布上.还可以裁切.拼贴图像数据,以显示用户需要的部分.此外,Canvas还提供了像素数据的存储功能,这样就能对 ...
- EF框架基础
ORM概述: ORM全称是"对象 - 关系映射" . ORM是将关系数据库中的数据用对象的形式表现出来,并通过面向对象的方式将这些对象组织起来,实现系统业务逻辑的过程. Entit ...
- c++字符串替换
#include <string> #include <iostream> using namespace std; string m_replace(string strSr ...
- 移动端页面中点击input输入框的时候弹出的键盘将输入框挡住的问题
使用的是vux框架, 以为是框架问题, 后来发现是把当前页面的高度写死为了height:200%: 只要把高度去掉就能让页面自动弹到输入框的上方:
- python---运算符和编码
格式化输出 在输出数据时,会有用户需要输入的信息被输出,没办法预先知道,这就需要使用格式化输出.先在相应位置放置一个占位符,再把字符串里的占位符与外部的变量做个映射关系. name = input(& ...