侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

swift中的字符串有关下标的操作

2024-05-11 星期六 / 0 评论 / 0 点赞 / 78 阅读 / 2983 字

1.通过下标访问相关字符 使用 startIndex 属性可以获取一个 String 的第一个 Character 的索引。使用 endIndex 属性可以获取最后一个 Character 的后一个位

1.通过下标访问相关字符

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

  通过调用 String.Index 的 predecessor() 方法,可以立即得到前面一个索引,调用 successor() 方法可以立即得 到后面一个索引。任何一个 String 的索引都可以通过锁链作用的这些方法来获取另一个索引,也可以调用 cedBy(_:) 方法来获取。但如果尝试获取出界的字符串索引,就会抛出一个运行时错误。 

你可以使用下标语法来访问 String 特定索引的 Character 。 

let greeting = "Guten Tag!"

greeting[greeting.startIndex]

// 结果为G

greeting[greeting.endIndex.predecessor()]

// 结果为!

greeting[greeting.startIndex.successor()]

  使用 characters 属性的 indices 属性会创建一个包含全部索引的范围( Range ),用来在一个字符串中访问单个字 符。

for index in greeting.characters.indices {

   print("/(greeting[index]) ", terminator: " ")

}
// 打印输出 "G u t e n T a g !"

2.插入和删除 (Inserting and Removing) 

  调用 insert(_:atIndex:) 方法可以在一个字符串的指定索引插入一个字符。 

var welcome = "hello"
welcome.insert("!", atIndex: welcome.endIndex) // welcome now 现在等于 "hello!" 

  调用 insertContentsOf(_:at:) 方法可以在一个字符串的指定索引插入一个字符串。 

welcome.insertContentsOf(" there".characters, at: welcome.endIndex.predecessor()) // welcome 现在等于 "hello there!" 

  调用 removeAtIndex(_:) 方法可以在一个字符串的指定索引删除一个字符。 

welcome.removeAtIndex(welcome.endIndex.predecessor()) // welcome 现在等于 "hello there" 

  调用 removeRange(_:) 方法可以在一个字符串的指定索引删除一个子字符串。 

let range = welcome.endIndex.advancedBy(-6)..<welcome.endIndex welcome.removeRange(range)
// welcome 现在等于 "hello"

 

注意:endIndex并不是结束位索引,使用时要重视:

        var string = "hello"

        string.insertContentsOf("******".characters, at: string.endIndex)

        //结果为 hello*****

        string.insertContentsOf("######".characters, at: string.endIndex.predecessor())

        //结果为//hell#####o

广告 广告

评论区