假设我有这样的价值
苹果(100)
橙(300)
菠萝(10)
葡萄(50)
香蕉(1000)
我想要做的是创建一个类似于每个字符串的数组
["苹果"" 100"]
["橙色"" 300"]
我尝试的是这样的,但它不能很好地满足我的答案
var myNewFruits = "Apple(200)"
var newStr = myNewFruits.componentsSeparatedByString("(")
输出
["Apple","200)"]
我真正想要的是
["Apple","200"]
Swift有什么帮助吗?谢谢。因为我正在创建搜索,所以,我真的需要它。
答案 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"]