Swift字符串截取字符的上一段

时间:2019-05-09 07:59:54

标签: swift

如何截获-:之前的字符串

let str = "fist:hello-world";

我要fist字符串

如果我使用Javascript,我将找到遇到的第一个字符并获取其下标并将其截取,但是我该如何迅速处理?

我尝试了一些api,但是没有,您能帮我吗?

3 个答案:

答案 0 :(得分:0)

let str = "hello:worl-d"
let components = str.components(separatedBy: CharacterSet(charactersIn: ":-"))
let result = components[0] // result = "hello"

答案 1 :(得分:0)

@ soufian-hossiam非常接近,但是如果您想使用多个“分字符”,如您在对他的回答的评论中建议的那样,则可以使用自定义CharacterSet

然后将String拆分成一个数组,如下所示:

let splitCharacters = CharacterSet([":", "-"])
let testString = "Hello:wor-ld"
let components = testString.components(separatedBy: splitCharacters)

现在,testStringcomponents数组中被分割为多个部分,然后您可以使用该数组来获取各个部分。

例如

for component in components {
    print(component)
}

返回:

  

你好

     

糟糕

     

ld

希望有帮助。

答案 2 :(得分:0)

要获取':'或'-'之前的任何内容,可以将prefixfirstIndex组合使用

let firstPart = input.prefix(upTo:input.firstIndex { $0 == ":" || $0 == "-"} ?? input.endIndex)

示例

let examples = ["hello:more stuff", "hello, more-stuff", "hello, more stuff"]

for input in examples {
    print(input.prefix(upTo:input.firstIndex { $0 == ":" || $0 == "-"} ?? input.endIndex))
}

输出

  

你好
  你好,更多
  你好,更多的东西