Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 快速移动范围2或排除找到的字符_Swift_Swift3 - Fatal编程技术网

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提到他知道这样的解决方案;-)无论如何,为了完整性,很高兴这一点变得明确。