我想学习最好/最简单的方法,将一个字符串转换为另一个字符串,但只有一个子集,从一个字符的开头到最后一个索引。
例如,将。什么样的代码片段会做到这一点,并且最快捷?(我希望这不会引起争论,但是我找不到关于如何在Swift中处理子字符串的好课程。
最好的方法是substringToIndex
结合使用endIndex
属性和advance
全局功能。
var string1 = "www.stackoverflow.com"
var index1 = advance(string1.endIndex, -4)
var substring1 = string1.substringToIndex(index1)
使用rangeOfString
并设置options
为.BackwardsSearch
var string2 = "www.stackoverflow.com"
var index2 = string2.rangeOfString(".", options: .BackwardsSearch)?.startIndex
var substring2 = string2.substringToIndex(index2!)
没有扩展,纯真的Swift
advance
现在是的一部分,Index
称为advancedBy
。您这样做:
var string1 = "www.stackoverflow.com"
var index1 = string1.endIndex.advancedBy(-4)
var substring1 = string1.substringToIndex(index1)
您无法调用advancedBy
a,String
因为它具有可变大小的元素。您必须使用index(_, offsetBy:)
。
var string1 = "www.stackoverflow.com"
var index1 = string1.index(string1.endIndex, offsetBy: -4)
var substring1 = string1.substring(to: index1)
许多事情已经重命名。这些案件都写在驼峰,startIndex
成了lowerBound
。
var string2 = "www.stackoverflow.com"
var index2 = string2.range(of: ".", options: .backwards)?.lowerBound
var substring2 = string2.substring(to: index2!)
另外,我不建议强制展开index2
。您可以使用可选的绑定或map
。就个人而言,我更喜欢使用map
:
var substring3 = index2.map(string2.substring(to:))
Swift 3版本仍然有效,但是现在您可以使用带有索引范围的下标:
let string1 = "www.stackoverflow.com"
let index1 = string1.index(string1.endIndex, offsetBy: -4)
let substring1 = string1[..<index1]
第二种方法保持不变:
let string2 = "www.stackoverflow.com"
let index2 = string2.range(of: ".", options: .backwards)?.lowerBound
let substring3 = index2.map(string2.substring(to:))
问题内容: 我有 使用JavaScript,如何获得最后五个字符或最后一个字符? 问题答案: 不要使用。请使用此方法,因为它与跨浏览器兼容(请参阅IE)。
问题内容: 如何获取字符串的最后一个字符? 问题答案: 代码: 输出:
我有一个字符串: 我想从中提取,即从右边的最后一个或第一个之后的子字符串。 有人能提供一些帮助吗?
问题内容: 我需要将字符串的最后4个字母分开。我该如何分开?字符串的长度在变化。 例如: 问题答案: 一个解决方案是 或上 代码是Swift 2 斯威夫特3: 在Swift 3中,第一个解决方案的语法已更改为 斯威夫特4: 在Swift 4中,它变得更加方便: 结果的类型是一种在许多情况下表现为a 的新类型。但是,如果子字符串应该离开创建它的作用域,则必须创建一个新实例。
问题内容: 如果我有字符串“ 12121211122”,并且想获取最后3个字符(例如“ 122”),那么Go中可以吗?我已经看过包裹了,没有看到类似的东西。 问题答案: 您可以在字符串上使用切片表达式来获取最后三个字节。 或者,如果您使用的是unicode,则可以执行以下操作: 检查Go和Slice Tricks中的 字符串,字节,符文和字符。
问题内容: 我曾经在JavaScript中这样做: Swift没有此功能,如何做类似的事情? 问题答案: 编辑/更新: Xcode 11•Swift 5.1或更高版本 用法: 不区分大小写的样本 正则表达式样本