在Swift中有没有办法打印出用户输入的数据类型?
例如,如果用户的输入是
123
123.45
ABC
123ABC
然后输出应为
整数
双人/浮动
Var str
Var str
答案 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
}
}