美文网首页iOS进阶
1.Swift中字符串的使用

1.Swift中字符串的使用

作者: xiaoyouPrince | 来源:发表于2017-05-17 14:01 被阅读10次

字符串的介绍

  • 字符串在任何的开发中使用都是非常频繁的
  • OC和Swift中字符串的区别
    • 在OC中字符串类型时NSString,在Swift中字符串类型是String
    • OC中字符串@"",Swift中字符串""
  • 使用 String 的原因
    • String 是一个结构体,性能更高
    • NSString 是一个 OC 对象,性能略差
    • String 支持直接遍历
    • Swift 提供了 StringNSString 之间的无缝转换

字符的定义

  • 定义不可变字符串
// 1> 定义不可变字符串 : 使用let修饰
let str : String = "hello swift"
// str = "hello Objective-C" 错误写法
  • 定义可变字符串
// 2> 定义可变字符串 : 使用var修饰
var strM : String = "hello world"
strM = "hello china"

字符串的使用

获取字符串的长度
  • 获取字符集合,再获取集合的count属性
let count = str.characters.count
字符串拼接
  • 两个字符串的拼接
let str1 = "Hello"
let str2 = "World"
let str3 = str1 + str2
  • 字符串和其他数据类型的拼接
let name = "why"
let age = 18

let info = "my name is \(name), age is \(age)"
  • 字符串的格式化
    • 比如时间:03:04
let min = 3
let second = 4

let time = String(format: "%02d:%02d", arguments: [min, second])
字符串的截取
  • Swift中提供了特殊的截取方式
    • 该方式非常麻烦
    • Index创建较为麻烦
  • 简单的方式是将String转成NSString来使用
    • 在标识符后加:as NSString即可
let urlString = "www.520it.com"

// Swift中通过 as 关键字可以将String类型转成NSString的类型
let header1 = (urlString as NSString).substring(to: 3)
let footer1 = (urlString as NSString).substring(from: 10)
let range1 = NSRange(location: 4, length: 5)
let middle1 = (urlString as NSString).substring(with: range1)
  • swift截取方式
let urlString = "www.520it.com"

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

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

let startIndex = urlString.index(urlString.startIndex, offsetBy: 4)
let endIndex = urlString.index(urlString.startIndex, offsetBy: 9)
let range2 = Range(startIndex..<endIndex)
let middle2 = urlString.substring(with: range2)
  • 两个字符串的比较
    在 Swift 中字符串的比较方式有三种

// 直接比较,Swift中字符串遵循 Sequence 协议,都可以这样比较
"xiaoyou".elementsEqual("晓友") 

// 遍历字符串,比较内部单个字符
for index in 0..<userAnswer.length {
  
    // 比较对应位置的word 是否相同
    if userAnswer.substring(with: NSMakeRange(index, 1)).compare(answer.substring(with: NSMakeRange(index, 1))) == ComparisonResult.orderedSame {
        
        print("-----same")
    }else{
        print("-----不一样,需要替换")
    }
    
    
    // 比较对应位置的 Character 是否相同
    let userA = userAnswer.character(at: index)
    let corrA = answer.character(at: index)
    if userA == corrA {
        print("\(userA)+++++++same")
    }else{
        print("\(userA)+\(corrA)++++++不一样,需要替换")
    }
}

相关文章

  • 1.Swift中字符串的使用

    字符串的介绍 字符串在任何的开发中使用都是非常频繁的 OC和Swift中字符串的区别在OC中字符串类型时NSStr...

  • Swift4-字符串和字符

    字符串和字符 1.Swift 的 String类型桥接到了基础库中的 NSString类。Foundation 同...

  • Swift和OC有什么区别?

    1.Swift可以面向协议编程、函数式编程、面向对象编程。 2.Swift是类型安全的,代码中使用字符串Strin...

  • Swift基础-03(数组和字典)

    1.Swift中数组基本使用 数组的基本使用 `` 数组的遍历 数组的增删改 数组容量,这个在OC中我们经常使用在...

  • Swift -- 11.源码分析&高阶函数

    一.String源码 1.Swift中String在内存中是如何存储的 这里我们定义了一个空字符串,想要通过内存信...

  • iOS学习周报二

    1.Swift Tips - Protocol Extension替代继承## 在面相对象编程中,经常使用基类为子...

  • Swift基础-04(函数 闭包)

    1.Swift中函数的使用 函数的定义 外部参数 _的使用 常见的 "_" 在for循环中 函数的默认值 无返回值...

  • iOS基础知识小记

    1.swift中遍历删除指定的子数组 ? 注意startIndex和endIndex的使用。 2.进程间的通信方式...

  • [Swift] 性能的一些测试

    1.Swift中数组性能的对比 编写性能要求高的算法时,发现Swift对使用Array还是ContiguousAr...

  • 开始从oc转入swift的注意点

    1.swift注重使用点语法,开始时会有点不习惯。OC使用的一些代码习惯要改改。 2.在OC中我们常用#pramg...

网友评论

    本文标题:1.Swift中字符串的使用

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