var string = "Hello-Swift"
//获取某个下标后一个下标对应的字符 char="e"
//swift2.2
//var char = string[startIndex.successor()]
//swift3.0
var char = string[string.index(after: startIndex)]
//获取某个下标前一个下标对应的字符 char2 = "t"
//swift2.2
//var char2 = string[endIndex.predecessor()]
//swift3.0
var char2 = string[string.index(before: string.endIndex)]
//通过范围获取字符串中的一个子串 Hello
//swift2.2
//var subString = string[startIndex...startIndex.advancedBy(4)]
//swift3.0
var subString = string[startIndex...string.index(startIndex, offsetBy: 4)]
//swift2.2
//var subString2 = string[endIndex.advancedBy(-5)...endIndex.predecessor()]
//swift3.0
var subString2 = string[string.index(endIndex, offsetBy: -5)..<endIndex]
//获取某个子串在父串中的范围
//swift2.2
//var range =  string.rangeOfString("Hello")
//swift3.0
var range = string.range(of: "Hello")
//追加字符串操作 此时string = "Hello-Swift! Hello-World"
//swift2.2
//string.appendContentsOf(" Hello-World")
//swift3.0
string.append(" Hello-World")
//在指定位置插入一个字符 此时string = "Hello-Swift!~ Hello-World"
//swift2.2
//string.insert("~", atIndex: string.startIndex.advancedBy(12))
//swift3.0
string.insert("~", at: string.index(string.startIndex, offsetBy: 12))
//在指定位置插入一组字符 此时string = "Hello-Swift!~~~~ Hello-World"
//swift2.2
//string.insertContentsOf(["~","~","~"], at: string.startIndex.advancedBy(12))
//swift3.0
string.insert(contentsOf: ["~","~","~"], at: string.index(string.startIndex, offsetBy: 12))
//在指定范围替换一个字符串 此时string = "Hi-Swift!~~~~ Hello-World"
//swift2.2
//string.replaceRange(string.startIndex...string.startIndex.advancedBy(4), with: "Hi")
//swift3.0
string.replaceSubrange(string.startIndex...string.index(string.startIndex, offsetBy: 4), with: "Hi")
//在指定位置删除一个字符 此时string = "Hi-Swift!~~~~ Hello-Worl"
//swift2.2
//string.removeAtIndex(string.endIndex.predecessor())
//swift3.0
string.remove(at: string.index(before:string.endIndex))
//删除指定范围的字符 此时string = "Swift!~~~~ Hello-Worl"
//swift2.2
//string.removeRange(string.startIndex...string.startIndex.advancedBy(2))
//swift3.0
string.removeSubrange(string.startIndex...string.index(string.startIndex, offsetBy: 2))
var string2 = "My name is Jaki"
//全部转换为大写
//swift2.2
//string2 = string2.uppercaseString
//swift3.0
string2 = string2.uppercased()
//全部转换为小写
//swift2.2
//string2 = string2.lowercaseString
//swift3.0
string2 = string2.lowercased()

需要注意,在Swift3.0中Range结构体被划分成了两种类型,Range和ClosedRange,分别用来描述左闭右开区间和闭区间,对应到运算符为0..<10和0...10。

从上面的示例代码中可以看出,String类型中的很多方法命名进行了Swift风格的简化,改动较大的一个点是关于下标index的改变,移除了两个Index下标移动的方法,使用String类型的index()方法来进行下标的移动操作,编程更加安全。

Swift3.0带来的变化汇总相关推荐

  1. Swift3.0带来的变化汇总系列一——字符串与基本运算符中的变化

    var string = "Hello-Swift" //获取某个下标后一个下标对应的字符 char="e" //swift2.2 //var char = s ...

  2. php7 ast,PHP7新特性之抽象语法树(AST)带来的变化详解

    本文分析了PHP7新特性之抽象语法树(AST)带来的变化.分享给大家供大家参考,具体如下: 这里大部分内容参照 AST 的 RFC 文档而成:https://wiki.php.net/rfc/abst ...

  3. 可折叠Web可能会给我们带来的变化

    简介:可折叠Web即将到来,我们应该去思考可折叠Web可能会给我们带来什么变化,如果这一天真的到来,我们的技术能否支持该设备? 作者 | 大漠 可折叠Web的说法是可折叠设备带来的.可折叠设备形式多样 ...

  4. 聊聊安卓折叠屏给交互设计和开发带来的变化

    很多年前,前端同学都觉得PC端的适配(兼容处理)难,都认为移动端的时代适配会容易得多,也无需考虑那么多的事情.事实并非如此,移动端的时代同样面临着各种适配的处理.特别是刘海机的出现,前端需要考虑刘海机 ...

  5. Android 5.0 API 的变化——开发人员注意

    Android 5.0 API变化 译自 http://developer.android.com/intl/zh-cn/about/versions/android-5.0.html -- By N ...

  6. android7.0后台,安卓7.0带来一键清理后台 真能使手机变快吗

    原标题:安卓7.0带来一键清理后台 真能使手机变快吗 从这个月开始手机扎堆发布,苹果.三星和LG这些国际大厂都带来了自己的年度旗舰产品,手机界可谓是热闹非凡.于是站安卓党和站ios党就到底哪家手机更好 ...

  7. 【HTML】HTML5给网页音频带来的变化

    [HTML]HTML5给网页音频带来的变化 引言 内容速递:看了本文您能了解到的知识! 音乐播放,相信大家都很熟悉,但是早在之前的音乐播放之前,你的浏览器会问你,是否下载flash插件.然而现在,估计 ...

  8. 移动端适配指南!聊聊安卓折叠屏给交互设计和开发带来的变化

    移动端的时代前端同学面临着各种适配的处理.刘海机的出现,前端需要考虑刘海机适配.如今,随着折叠屏手机的面世,前端同学接着又要处理折叠屏幕的适配.本文除了介绍折叠机给我们带来的变化之外,还提出了响应式设 ...

  9. 鸿蒙系统将应用于什么手机,首款能“应用在汽车上”的手机系统来了!华为鸿蒙将给汽车业带来什么变化?| 中国汽车报...

    原标题:首款能"应用在汽车上"的手机系统来了!华为鸿蒙将给汽车业带来什么变化?| 中国汽车报 一旦梦想照进现实,该是多么令人喜悦! 可用在汽车中控屏上.使用更方便的"鸿蒙 ...

最新文章

  1. 【tensorboard】从tensorboard上看出模型是否存在过拟合
  2. 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数011,ocr,字符识别
  3. Windows 下端口被占用
  4. ASP.NET + SqlSever 大数据解决方案 PK HADOOP
  5. postman 以全局变量活用 Token
  6. vlist java实现-转
  7. 二维字符数组按长度排序_字符串长度 字符数组长度
  8. Android studio | From Zero To One ——滚动视图ScrollView
  9. 基于php的地铁查询系统,HTML5 Canvas实现交互式地铁线路图
  10. fatal error: Python.h: No such file or directory
  11. win10创建c语言文件,c – 如何在Windows中创建扩展(自定义)文件属性?
  12. bt709和srgb_选择用于多用途视频编辑和色彩校正的显示器— sRGB,DCI-P3,REC 709
  13. CDC Comms Interface 设备解决方案
  14. EM9636数据上传百度云
  15. 基于Proteus学习单片机系列(十)——LCD1602
  16. linux下安装python3报错_Linux中安装python3
  17. 时域同步平均(TSA)降噪原理
  18. npm安装私有指定路径的依赖包
  19. Recovery for Dvr(WFS格式和大华监控恢复软件) V1.0软件简介
  20. SAP 自定义登录密码规则

热门文章

  1. 将调用密集型的 COM 组件迁移到托管代码
  2. 【摄像头】宽动态范围
  3. 【Dlib】dlib实现深度网络学习之 input层
  4. php工程模式,PHP设计模式(八):工厂模式
  5. sql文本编辑器_专业文本编辑工具
  6. android c聊天功能,Android实现简单C/S聊天室应用
  7. php数据库html文本,关于php,mysql,html的数字分页和文本_php
  8. 【蓝桥java】递归基础之39级台阶
  9. spark为什么比hive速度快?
  10. python参数类型限定_python限定方法参数类型、返回值类型、变量类型等|python3教程|python入门|python教程...