目录:

  • 初始化
  • 常用方法或属性
  • 字符串索引

初始化

创建一个空字符串作为初始值:

var emptyString = ""                // 空字符串字面量
var anotherEmptyString = String() // 初始化方法,两个字符串均为空并等价。
常用方法或属性
 var empty = emptyString.isEmpty    // 判断字符串是否为空
var welcome = "string1" + string2 // 使用 + 或 += 拼接字符串
welcome.append("character") // 使用append()在字符串末尾追加字符 // 使用 \(变量) 进行字符串插值
let multiplier =
let message = "\(multiplier) times 2.5 is \(Double(multiplier) * 2.5)" // 使用 == 或 != 进行字符串比较
if quotation == sameQuotation {
print("These two strings are considered equal")
} // 使用 hasPrefix() 和 hasSuffix() 判断是否又前缀或后缀
if scene.hasPrefix("Act 1 ") {
print("The string has the prefix of Act 1“)
}

注意:

・不能将一个字符串或者字符添加到一个已经存在的字符变量上,因为字符变量只能包含一个字符。
・插值字符串中写在括号中的表达式不能包含非转义反斜杠 ( \ ),并且不能包含回车或换行符。
字符串索引

可以通过字符串下标或索引属性和方法来访问和修改它,String.Index对应着字符串中的Character位置。

 sampleString.startIndex.         // 获取第一个字符的索引
sampleString.endIndex // 获取最后一个字符的索引 let greeting = "Guten Tag!"
greeting[greeting.startIndex] // G 使用下标获取字符
greeting[greeting.index(before: greeting.endIndex)] // !
greeting[greeting.index(after: greeting.startIndex)] // u let index = greeting.index(greeting.startIndex, offsetBy: )
greeting[index] // a /*
greeting[greeting.endIndex] // error Index越界
greeting.index(after: endIndex) // error Index越界
*/ // 使用 characters.indices 属性创建一个包含全部索引Range来遍历字符串中单个字符
for index in greeting.characters.indices {
print("\(greeting[index]) ", terminator: "") // 输出 "G u t e n T a g ! "
} var welcome = "hello"
welcome.insert("!", at: welcome.endIndex) // welcome 等于 "hello!"
welcome.remove(at: welcome.index(before: welcome.endIndex))// welcome 等于 "hello"

注意:

・可扩展的字符群集可以组成一个或者多个Unicode标量。这意味着不同的字符以及相同字符的不同表示方式可能需要不同数量的内存空间来存储。所以Swift中的字符在一个字符串中并不一定占用相同的内存空间。因此在没有获得字符串可扩展字符群集范围的时候,是不能计算出字符串的字符数量,此时就必须遍历字符串全部的 Unicode 标量,来确定字符数量。
声明:该系列内容均来自网络或电子书籍,只做学习总结!

Swift学习笔记(4):字符串的更多相关文章

  1. Swift学习笔记(4)--字符串及基本使用

    String是例如“hello, world”,“海贼王” 这样的有序的Character(字符)类型的值的集合,通过String类型来表示. Swift 的String类型与 Foundation  ...

  2. 【swift学习笔记】二.页面转跳数据回传

    上一篇我们介绍了页面转跳:[swift学习笔记]一.页面转跳的条件判断和传值 这一篇说一下如何把数据回传回父页面,如下图所示,这个例子很简单,只是把传过去的数据加上了"回传"两个字 ...

  3. Swift学习笔记(一)搭配环境以及代码运行成功

    原文:Swift学习笔记(一)搭配环境以及代码运行成功 1.Swift是啥? 百度去!度娘告诉你它是苹果最新推出的编程语言,比c,c++,objc要高效简单.能够开发ios,mac相关的app哦!是苹 ...

  4. 1.C#基础学习笔记3---C#字符串(转义符和内存存储无关)

    技术qq交流群:JavaDream:251572072  教程下载,在线交流:创梦IT社区:www.credream.com ------------------------------------- ...

  5. 【学习笔记】字符串—马拉车(Manacher)

    [学习笔记]字符串-马拉车(Manacher) 一:[前言] 马拉车用于求解连续回文子串问题,效率极高. 其核心思想与 \(kmp\) 类似:继承. --引自 \(yyx\) 学姐 二:[算法原理] ...

  6. 「学习笔记」字符串基础:Hash,KMP与Trie

    「学习笔记」字符串基础:Hash,KMP与Trie 点击查看目录 目录 「学习笔记」字符串基础:Hash,KMP与Trie Hash 算法 代码 KMP 算法 前置知识:\(\text{Border} ...

  7. Swift学习笔记(十四)——字符,常量字符串与变量字符串

    在学习Java过程中,字符串碰到过String和StringBuffer,当中前者是不可变的,不能对字符串进行改动:后者是可变的,能够不断改动. 来到Swift中,对字符串的定义变的更加简单. (1) ...

  8. swift学习笔记5——其它部分(自动引用计数、错误处理、泛型...)

    之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...

  9. swift学习笔记3——类、结构体、枚举

    之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...

  10. swift学习笔记1——基础部分

    之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...

随机推荐

  1. 怎样获得PRINCE2证书?报名PRINCE2有什么条件?

    参加培训:想要获得PRINCE2资格证书,参加培训是非常必要的,正规的培训机构有获得组织认证考试的权力.光环国际全年开设prince2课程班,全国各个地区均可以选择培训及考试 选择培训机构:只有经AP ...

  2. Java基础—String类小结

    一.String类是什么 public final class String implements java.io.Serializable, Comparable<String>, Ch ...

  3. 一个简单用原生js实现的小游戏----FlappyBird

    这是一个特别简单的用原生js实现的一个小鸟游戏,比较简单,适合新手练习 这是html结构 <!DOCTYPE html><html lang="en">&l ...

  4. Framework7+vue demo

    最近看了下f7+vue做了几个测试页面,商品图片来自淘宝,代码等有时间了再传,

  5. 635B. Bear and Compressing

    B. Bear and Compressing time limit per test 2 seconds memory limit per test 256 megabytes input stan ...

  6. PHP中的for循环

    循环 循环是操作某一个功能(执行某段代码). ①循环四要素: a 循环初始值 b 循环的条件 c 循环状态 d 循环体 ②for循环 a 穷举:把所有的可能性的都一一列出来. b 迭代:每次循环都会把 ...

  7. c#遍历文件夹获得所有文件

    在c#中,想要获得一个文件夹下的所有子目录以及文件十分简单. 首先,获取目录的情况下,DirectoryInfo.GetDirectories():获取目录(不包含子目录)的子目录,返回类型为Dire ...

  8. React-Native 之 项目实战(五)

    前言 本文 有配套视频,可以酌情观看. 文中内容因各人理解不同,可能会有所偏差,欢迎朋友们联系我讨论. 文中所有内容仅供学习交流之用,不可用于商业用途,如因此引起的相关法律法规责任,与我无关,如文中内 ...

  9. 简单c语言子集词法分析器

    概述 词法分析是编译的第一个环节,其输入是高级语言程序,输出是单词串.词法分析器的主要任务是将高级语言程序作为字符串输入,然后依据词法规则将字符串组合成单词,并输出单词串. 为了方便之后的编译环节,通 ...

  10. 使用NPOI写入Excel数据(ASP.NET)

    第一次做这个写入数据的功能,研究了下npoi的类 IWorkbook wb = new HSSFWorkbook(); //创建表 ISheet sh = wb.CreateSheet("X ...