检查堆栈中的类型

时间:2014-06-28 07:54:09

标签: ios swift xcode6

我无法弄清楚我的生活怎么做,我花了几个小时研究。

我有一个后缀形式的表达式,例如:5 6 7 * + 1 - 这是来自UITextField,我想弄清楚的是如何迭代该表达式并将整数与运算符区分开来(* + - )。

是否有某种解析方法?使用它不起作用,我只是得到“Int不是字符的子类型”:

for token in expression {
    if token is Int {
      ...

让我疯了,有人知道解决方案吗?谢谢!

1 个答案:

答案 0 :(得分:0)

令牌是一个字符串吗?如果是这样,你可以做类似

的事情
var tokens : String[] = ["1","x","2","3","y"]
var ints = tokens.map({t in t.toInt()}).filter({t in t != nil}).map({t in t!})

或者您只想过滤

tokens.filter({t in t.toInt() != nil})

或使用if

for t in tokens {
    if t.toInt() {
        println(t)
    }  
}

如果是关于分裂

var tokens : String[] = "1 2 x y 3 z".componentsSeparatedByString(" ")