美文网首页
Swift基础_02字符串

Swift基础_02字符串

作者: cmfish | 来源:发表于2017-08-23 09:57 被阅读45次

字符串

字符串介绍

  • 在Swift中字符串用String标识,在任何的开发中字符串的使用都是很频繁的,因此必须要很熟悉。
  • 和OC中字符串的区别:
    • OC 中的字符串的类型是NSString,在Swift中字符串的类型是String
    • OC 中的字符串是@"",Swift中的字符串是"",不需要@符号
  • String的优势
    • String是一个结构体,性能更高
    • NSString是一个OC对象,性能略差
    • String可以直接进行遍历
    • Swift 提供了String和NSString的无缝转换
Tip 😓写OC习惯了 总是给字符串前加@符号 和末尾分号 相信同写OC初学Swift的同学都有这个感受 多敲敲就会好了

字符串的定义

  • 定义不可变字符串 : 用let修饰

    提示str : String = "Swift 这里的 : = 左右两边都要有空格
//不可变字符串  let 标识符 :String =  "Swift字符串"
let str : String = "Swift 字符串"
  • 定义不可变字符串 :使用var 修饰

var mutStr : String = "这是一个可变字符串"

mutStr = "我变了"

字符串使用

  • 获取字符串的长度

    • 获取字符串的字符集合然后再获取集合的count属性
//characters可以获取字符串的字符集合
let count = str.characters.count
  • 字符串的拼接

    • 两个字符串的拼接 可以直接用 + 拼接

      • 例 i+want : 标识符 + 标识符
      • 是不是很简便 比OC 的format是不是爽太多
  let i = "我"
  let want = "要"
  let iWant = i+want
  //打印结果  我要
  • 字符串和其他数据类型的拼接

    • 格式 :反斜杠(标识符) (标识符)

let name = "Swift"
let age = 3

let info = "\(name) is \(age)years old"
  • 字符串的格式化

    • 比如时间: 11:20
let min = 11

let second = 20

let time = String(format: "%02d:%02d", arguments: [min ,second])
  • 字符串的截取

    • Swift中提供了特殊的截取方式该方式比较麻烦,需要创建index
    • 简单的方式是直接将String转成NSString来使用在标识符后加 as NSString即可
//截取方式1
// 转化成NSString再截取

let url = "www.baidu.com"

//Swift中可以通过 as 关键字将String类型转成NSString的类型(推荐使用)
//直接截取到某一位
let header1 = (url as NSString).substring(to: 3)             //www
let footer1 = (url as NSString).substring(to: 10)             //www.baidu.
//通过range截取
let range1 = NSRange(location: 4, length: 5)
let center = (url as NSString).substring(with: range1)  //baidu


// Swift字符串截取方式2
//创建下标 截取
let urlString = "www.baidu.com"

let headerIndex = urlString.index(urlString.startIndex, offsetBy: 3) //   3
let header2 = urlString.substring(to: headerIndex)                           //www

let footerIndex = urlString.index(urlString.endIndex, offsetBy: -3)  //10
let footer2 = urlString.substring(from: footerIndex)                          //com

// Swift字符串截取方式3
//根据range截取
let startIndex = urlString.index(urlString.startIndex, offsetBy: 4)  //4
let endIndex = urlString.index(urlString.startIndex, offsetBy: 9)     //9
let range2 = Range(startIndex..<endIndex)
let center2 = urlString.substring(with: range2)                               // baidu    
//三种截取方式 后两种创建index和range比较繁琐,在开发中建议使用第一种,转化成NSString的方式截取

推荐阅读

Swift基础_03数组 http://www.jianshu.com/p/02bdcd59c082

后续

需要资料的可以私信我或直接邮箱/QQ

欢迎点赞/拍砖

邮箱 ichenwanbing@163.com
QQ 351795515

相关文章

网友评论

      本文标题:Swift基础_02字符串

      本文链接:https://www.haomeiwen.com/subject/qstddxtx.html