Swift 快速移动范围2或排除找到的字符
这可能是一个基本的问题,但我很难不把-包括在第二个问题中Swift 快速移动范围2或排除找到的字符,swift,swift3,Swift,Swift3,这可能是一个基本的问题,但我很难不把-包括在第二个问题中 var title1 = "I will be part of string 1 - I am part of string 2" let end = title1.range(of: "-", options: .backwards)?.lowerBound let firstPartRange = title1.startIndex..<end! var secondPart = title1.substring(with: f
var title1 = "I will be part of string 1 - I am part of string 2"
let end = title1.range(of: "-", options: .backwards)?.lowerBound
let firstPartRange = title1.startIndex..<end!
var secondPart = title1.substring(with: firstPartRange) // Gives me "I will be part of string 1" which is correct
title1.substring(from: end!) // however this guy gives me "- I am part of string 2" & I only want to get "I am part of string 2" without the space and dash in front
var title1=“我将是字符串1的一部分-我是字符串2的一部分”
让end=title1.range(of:“-”,选项:。向后)?.lowerBound
让firstPartRange=title1.startIndex..您只需在结束后获取索引或将其偏移2即可。请注意,您还应该使用index(索引,offsetBy:n,limitedBy:endIndex)方法确保它不通过结束索引。
let title1=“我将是字符串1的一部分-我是字符串2的一部分”
如果let end=title1.range(of:“-”,选项:。向后)?.lowerBound{
让firstPartRange=title1.startIndex..您只需要在结束后获取索引或将其偏移2。请注意,您还应该使用方法index(index,offsetBy:n,limitedBy:endIndex)确保它不通过结束索引。
let title1=“我将是字符串1的一部分-我是字符串2的一部分”
如果let end=title1.range(of:“-”,选项:。向后)?.lowerBound{
让firstPartRange=title1.startIndex..您正在查找索引(uu:offsetBy:)
。这是原始字符串的一种方法,如下所示:
var title1 = "I will be part of string 1 - I am part of string 2"
let end = title1.range(of: "-", options: .backwards)!.lowerBound
let ix = title1.index(end, offsetBy: 2)
title1.substring(from: ix) // "I am part of string 2"
您正在查找索引(uu:offsetBy:)
。这是原始字符串的一种方法,如下所示:
var title1 = "I will be part of string 1 - I am part of string 2"
let end = title1.range(of: "-", options: .backwards)!.lowerBound
let ix = title1.index(end, offsetBy: 2)
title1.substring(from: ix) // "I am part of string 2"
您可以使用组件(separatedBy:string)方法分离字符串的内容,该方法将返回已分离字符串的数组,然后您可以从最后一个元素中删除空格
var title1 = "I will be part of string 1 - I am part of string 2"
print(title1.components(separatedBy: "-").last!.trimmingCharacters(in: .whitespacesAndNewlines))
它会给你想要的结果
“我是字符串2的一部分”
希望有帮助!您可以使用组件(separatedBy:string)方法分离字符串的内容,该方法将返回分隔字符串的数组,然后您可以从最后一个元素中删除空格
var title1 = "I will be part of string 1 - I am part of string 2"
print(title1.components(separatedBy: "-").last!.trimmingCharacters(in: .whitespacesAndNewlines))
它会给你想要的结果
“我是字符串2的一部分”
希望有帮助!您可以使用components功能并在分隔符中包含空格:
title1.components(separatedBy:" - ")
您可以使用components函数并在分隔符中包含空格:
title1.components(separatedBy:" - ")
正如@matt所建议的那样,您正在寻找索引(u:offsetBy:)
仅使用Swift标准库的方法稍有不同(无基础)
如果要修剪所有多余的空间
let partsTrimmed = parts.map {
$0.characters.split(separator: " ").map(String.init).joined(separator: " ")
}
正如@matt所建议的那样,您正在寻找索引(u:offsetBy:)
仅使用Swift标准库的方法稍有不同(无基础)
如果要修剪所有多余的空间
let partsTrimmed = parts.map {
$0.characters.split(separator: " ").map(String.init).joined(separator: " ")
}
您需要附加一个trimmingCharacters(in:.空格)
以获得OP想要的结果。或者只需通过2Sure进行补偿,让OP决定:-)当然,修剪会从两端移除。您需要附加一个trimmingCharacters(in:.空格)
为了得到OP想要的结果。或者仅仅用2Sure抵消,让OP决定:-)当然,修剪会从两端删除。let ix=title1(end,offsetBy:2)
是错误的,应该是let ix=title1。index(end,offsetBy:2)
顺便说一句,如果原始字符串以“-”结尾,这将崩溃。
let ix=title1(end,offsetBy:2)
是错误的,它应该是让ix=title1。索引(end,offsetBy:2)
顺便说一句,如果原始字符串以结尾,则会崩溃-“
OP提到他知道这样的解决方案;-)无论如何,为了完整性,很高兴这一点变得明确。OP提到他知道这样的解决方案;-)无论如何,为了完整性,很高兴这一点变得明确。