试图在Swift中将输入字符串转换为整数

时间:2016-03-10 01:13:56

标签: string swift int

我正在尝试编写一个从用户输入数字并将其存储到字符串中的程序,然后我尝试将该字符串转换为整数以供进一步使用。每当我转换它时,它会显示整数值的nil,但会在保存为字符串时打印输入。到目前为止,这是我的代码。这是我第一次尝试用swift写作。

import Foundation

func input() -> String{
    var keyboard = NSFileHandle.fileHandleWithStandardInput()
    var inputData = keyboard.availableData
    return NSString(data: inputData, encoding:NSUTF8StringEncoding) as! String
}


print("What is a number: ")

let user: String? = input()
print("You typed: " + user!)

var num = Int(user!)
print("Your number was" ,(num))

2 个答案:

答案 0 :(得分:0)

Int函数返回可选整数,因此如果您的字符串无法转换,则返回nil。如果您为其指定了可以转换的值,那么您将获得您正在寻找的结果:

let user: String = "5"
var num = Int(user)

if let num = num {
    print("Your number was \(num)")
} else {
    print("Your number is nil")
}

此外,您的input函数返回String,但您将user变量定义为可选String?

答案 1 :(得分:0)

在搜索并尝试不同的事情之后,我能够完成我想做的事情......

var user = input()
var newString = user.stringByTrimmingCharactersInSet(NSCharacterSet.newlineCharacterSet())