目录:

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

初始化

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

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. 为什么使用 Containjs 模块化管理工具效率高?

    为什么使用 Containjs 模块化管理工具效率高? 要说明这个首先得说明一下,Containjs 的模块加载原理. 第一步,首先使用异步加载(ajax)在 js 目录下的 app.js 入口模块( ...

  2. jQuery习题

    1.在div元素中,包含了一个<span>元素,通过has选择器获取<div>元素中的<span>元素的语法是? 答:$("div:has(span)&q ...

  3. 玩转SSH(五):Struts + Spring + MyBatis(注解版)

    本文将在 玩转SSH(四):Struts + Spring + MyBatis 的基础上进行一些小的改动,将原本是 xml 配置方式的项目,改成注解的配置方式. 要将项目改成注解方式,一般是将在 Sp ...

  4. 华为C语言编程规范笔记1

    入职之前,公司培训,做了点笔记~

  5. 微信小程序省市联动

    最近呢刚好做了一个省市联动的功能,今天看到有人问这个怎么做,我就把我做的放上来共享一下: 首先呢,来看看效果,点击文字'点击',弹出选择窗口,点击取消或者确定(取消.确定按钮在选择框上边,截图有些不清 ...

  6. Android常用adb命令

    1.进入手机命令行模式 adb shell 有多部手机的话 adb -s + 手机编号 + shell 2.安装apk adb install 然后将apk文件拖进命令行 卸载apk adb unin ...

  7. JavaScript高级程序设计---学习笔记(四)

    1.全局变量不能通过delete操作符删除,而直接在window对象上定义的属性可以. var age = 29; window.color = "red"; delete age ...

  8. 处理json数据的空数据为任意字符

    处理json数据的空数据为任意字符 有时候从后台返回来的数据需要处理一下,根据实际开发需求,不能在页面上直接显示空字符,需要显示为"无内容"或者其他字段,而有些json数据结构比较 ...

  9. 使用Entity Framework时遇到的问题

    1.运行程序时提示 ,vension does not match. 差不多是这样一个提示,具体怎么样的给忘记了. #1remove 'entity framework' from reference ...

  10. ELK菜鸟手记 (三) - X-Pack权限控制之给Kibana加上登录控制以及index_not_found_exception问题解决

    0. 背景 我们在使用ELK进行日志记录的时候,通过网址在Kibana中查看我们的应用程序(eg: Java Web)记录的日志, 但是默认是任何客户端都可以访问Kibana的, 这样就会造成很不安全 ...