Swift

时间:2015-09-06 12:40:36

标签: ios iphone arrays swift

我在Swift中有一个数组:

["\"100003866283798-2\"", "\"100001986741004-2\"",     
"\"100003455181526-2\"", "\"100002261472542-2\"", 
"\"100003866283798-3\"", "\"100003866283798-0\"",
"\"100001986741004-3\"", "\"100001986741004-0\"", 
"\"100003455181526-3\"", "\"100003455181526-0\"", 
"\"100002261472542-3\"", "\"100002261472542-0\""]

我只想要数字,而不是引号和-2

我无法做到这一点,因为当我输入

let cleanStr = numberArray.stringByReplacingOccurrencesOfString("\"", withString: "", options: nil, range: nil)

它给出了错误:

  

类型的价值' [String]'没有会员   ' stringByReplacingOccurrencesOfString'

我知道它对所有引号都很混乱,但我希望这些数字没有它们的引号等,任何人都有解决方案吗?

2 个答案:

答案 0 :(得分:0)

stringByReplacingOccurrencesOfString

仅适用于NSString而不是Array。然后你必须迭代你的数组删除多余的char。

答案 1 :(得分:0)

你可以这样做:

def flatten(rootElem: R): Stream[String] = {
  def flatten0(elem: R, xs: Stream[String]): Stream[String] =
    Stream.cons(elem.key, elem.nodes.foldLeft(xs)((acc, x) => flatten0(x, acc)))

  flatten0(rootElem, Stream.empty)
}

(奇怪的是,如果没有类型注释,它就不会编译)。或者,如果你觉得很奇特:

let newArray = array.map { (string: String) -> String in
    let woFirst = string.characters.dropFirst()
    let tilDash = woFirst.prefixUpTo(
        woFirst.indexOf("-") ?? woFirst.endIndex)
    return String(tilDash)
}

(XCode 7 beta 6)