返回用户的输入数据类型

时间:2014-07-29 10:30:28

标签: swift

在Swift中有没有办法打印出用户输入的数据类型?

例如,如果用户的输入是

123
123.45
ABC
123ABC

然后输出应为

整数
双人/浮动
Var str
Var str

1 个答案:

答案 0 :(得分:1)

您可以使用正则表达式:

func getDataType(string : NSString) -> String {
    var integerRegex = NSRegularExpression(pattern: "^[0-9]+$", options: nil, error: nil)
    var decimalRegex = NSRegularExpression(pattern: "^\\d*\\.?\\d*$", options: nil, error: nil)
    var range = NSRange(location: 0, length: string.length)
    if (integerRegex.firstMatchInString(string, options: nil, range: range)) {
        return "Integer"
    } else if (decimalRegex.firstMatchInString(string, options: nil, range: range)) {
        return "Double/Float"
    } else {
        return "String"
    }
}

您也可以从字符串中检索数字:

func getNumber(string: NSString) -> AnyObject? {
    var type = getDataType(string)
    if (type == "Integer") {
        return string.integerValue
    } else if (type == "Double/Float") {
        return string.doubleValue
    } else {
        return nil
    }
}
相关问题