美文网首页
swift5.0 字符串截取

swift5.0 字符串截取

作者: Q2我没有疯 | 来源:发表于2019-06-05 11:43 被阅读0次

字符串索引

每一个 String 值都有一个关联的索引(index)类型,String.Index,它对应着字符串中的每一个 Character 的位置。

使用 startIndex 属性可以获取一个 String 的第一个 Character 的索引。使用 endIndex 属性可以获取最后一个 Character 的后一个位置的索引。因此,endIndex 属性不能作为一个字符串的有效下标。如果 String 是空串,startIndex 和 endIndex 是相等的。

通过调用 String 的 index(before:) 或 index(after:) 方法,可以立即得到前面或后面的一个索引。你还可以通过调用 index(_:offsetBy:) 方法来获取对应偏移量的索引

let welcome = "hello world"
print(welcome[welcome.startIndex])
// h
print(welcome[welcome.index(after: welcome.startIndex)])
// e
print(welcome[welcome.index(before: welcome.endIndex)])
// d
let someIndex = welcome.index(welcome.startIndex, offsetBy: 3)
print(welcome[someIndex])
// l
let anotherIndex = welcome.index(welcome.endIndex, offsetBy: -3)
print(welcome[anotherIndex])
// r

字符串的截取

Rang

A half-open interval from a lower bound up to, but not including, an upper bound.
从下界到上界的半开区间,但不包括上界(来自有道翻译)。

使用range(of: ) 可以根据给定的选项(条件)在给定的字符串范围内查找并返回给定选项(条件)第一次出现的范围。Range中包含两个属性lowerBound(下界)upperBound (上界)

示例

let someString = "今天你恰饭了吗"
// someRang的类型是 Range<String.Index>?
if let someRange = someString.range(of: "恰饭") { 
    print(someString[someRange])
    // 恰饭
    print(someString[someRange.lowerBound])
    // 恰
    print(someString[someRange.upperBound])
    // 了
}

从上面的示例中我们可以得出 lowerBound 类似我们给定条件的startIndex也就是“恰饭”的第一个索引,而upperBound类似我们给定条件的endIndex也就是“恰饭”最后一个 Character 的后一个位置的索引。

在空范围内,“下界”等于“上界”

下面是对微博来源字符串截取的一个示例:

let source = "<a href=\"http://weibo.com/\" rel=\"nofollow\">榜姐的iPhone客户端</a>"
let startRang = source.range(of: ">")!
let endRang = source.range(of: "</")!
print(source[...startRang.lowerBound])
//  <a href="http://weibo.com/" rel="nofollow">
print(source[startRang.upperBound...])
//  榜姐的iPhone客户端</a>
print(source[startRang.upperBound..<endRang.lowerBound])
// 榜姐的iPhone客户端

相关文章

  • swift5.0 字符串截取

    字符串索引 每一个 String 值都有一个关联的索引(index)类型,String.Index,它对应着字符串...

  • swift5.0 字符串截取

    字符串索引 每一个 String 值都有一个关联的索引(index)类型,String.Index,它对应着字符串...

  • mac 终端常见命令

    切换shell 截取字符串 shell字符串的截取 shell字符串的截取 Shell脚本8种字符串截取方法总...

  • swift-字符串截取 截取指定字符前面或后面的字符串

    截取‘:’前面所有的字符串 截取‘:’前面所有的字符串(结果包含‘:’) 截取':'后面的所有字符串 截取':'后...

  • iOS 字符串常见处理

    一、截取字符串 iOS “字符串” 的几种常见的截取方法(随时更新)iOS截取字符串,分割字符串iOS 截取字符串...

  • OC - NSString

    1.字符串的截取 字符串的截取用: 字符串 +substring..如果开始就截取用from, 如果截取到用to。...

  • OC 字符串的截取

    1、字符串截取 2、从指定位置开始截取n个长度 3、分隔字符串 4、字符串的截取替换 5、替换掉截取某部分的字符串...

  • Swift字符串截取

    NSString类型的字符串截取 NSString类型的字符串截取方法,同于OC语言的字符串截取方法,不能修改字符...

  • MySQL字符串截取的4个函数

    mysql字符串截取的4个函数 tags:mysql 字符串截取 1、从左开始截取字符串 left(str, le...

  • shell截取字符串

    获取字符串长度 最小限度从前面截取字符串 最大限度从前面截取字符串 最小限度从后面截取字符串 最大限度从后面截取字...

网友评论

      本文标题:swift5.0 字符串截取

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