Swift 4:根据字符修剪字符串的最后一个字符

时间:2018-05-06 23:52:46

标签: swift

我正在尝试删除Swift中最后一个IP地址字符串的数字,这样我就可以遍历IP地址了。例如,如果我的变量= 192.168.1.123,我想将字符串修剪为等于192.169.1。

我不知道如何做到这一点,因为有些IP地址会以1,2或3位结尾。我无法弄清楚如何修剪回某个角色。

2 个答案:

答案 0 :(得分:4)

我有一个解决方案(仅在您的情况下)。你可以尝试一下

let str = "192.168.1.123"
var arr = str.components(separatedBy: ".")
arr.removeLast()
let newstr = arr.joined(separator: ".") + "."

答案 1 :(得分:3)

您可以找到最后.的范围:

let ip = "192.168.1.123"
let lastdot = ip.range(of: ".", options: .backwards)!
let base = ip[...lastdot.lowerBound]

此代码假定字符串中至少有一个.。如果不是它会崩溃。通过正确使用if let可以很容易地解决这个问题。

base将是Substring,因此根据您接下来的操作,您可能需要将其包装为:

let base = String(ip[...lastdot.lowerBound])

是否明确转换为String取决于后续方法是否需要StringStringProtocol。再次在存储上转换为String个副本,这对于许多操作而言代价高昂且不必要,但在某些情况下可能需要。