如何通过删除"()"

时间:2015-07-03 10:42:30

标签: arrays string swift

假设我有这样的价值

苹果(100)

橙(300)

菠萝(10)

葡萄(50)

香蕉(1000)

我想要做的是创建一个类似于每个字符串的数组

["苹果"" 100"]

["橙色"" 300"]

我尝试的是这样的,但它不能很好地满足我的答案

var myNewFruits = "Apple(200)"
var newStr = myNewFruits.componentsSeparatedByString("(")

输出

["Apple","200)"]

我真正想要的是

["Apple","200"]

Swift有什么帮助吗?谢谢。因为我正在创建搜索,所以,我真的需要它。

2 个答案:

答案 0 :(得分:2)

您可以使用自定义NSCharacterSet并从返回的数组中获取前两个元素:

let myNewFruits = "Apple(200)"
let newStr = myNewFruits.componentsSeparatedByCharactersInSet(NSCharacterSet(charactersInString: "()"))[0...1]   // ["Apple", "200"]

答案 1 :(得分:1)

你可以这样做:

func stringToArr(str: String) -> [String] {

    var newArr = [String]()
    var fullNameArr = split(str) {$0 == "("}
    newArr.append(fullNameArr[0])
    var last: String? = fullNameArr.count > 1 ? fullNameArr[1] : nil
    newArr.append(last!.stringByReplacingOccurrencesOfString(")", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil))

    return newArr
}

var string = "Apple(100)"          //"Apple(100)"
let newArr = stringToArr(string)   //["Apple", "100"]