我正在尝试删除Swift中最后一个IP地址字符串的数字,这样我就可以遍历IP地址了。例如,如果我的变量= 192.168.1.123,我想将字符串修剪为等于192.169.1。
我不知道如何做到这一点,因为有些IP地址会以1,2或3位结尾。我无法弄清楚如何修剪回某个角色。
答案 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
取决于后续方法是否需要String
或StringProtocol
。再次在存储上转换为String
个副本,这对于许多操作而言代价高昂且不必要,但在某些情况下可能需要。