2016-03-10 91 views
0

我正在嘗試編寫一個程序,它接受用戶輸入的數字並將其存儲到一個字符串中,然後我試圖將該字符串轉換爲整數以備後用。每當我轉換它,它顯示整數值爲零,但將保留爲字符串時打印輸入。這是我的代碼到目前爲止。這是我第一次嘗試快速寫作。嘗試將輸入字符串轉換爲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)) 
+0

如果你的輸入是不是多少?或者你只是假定輸入是 – Lee

+1

'user'在最後包含一個換行符,這就是爲什麼你的轉換爲'Int'失敗。 –

+0

如何擺脫換行符 –

回答

0

Int函數返回一個可選整數,因此,如果您的字符串不能轉換,將返回零。如果你給它分配一個值,它可以轉換,你會得到你正在尋找的結果:

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?

0

摸索和嘗試不同的東西后,我能夠做什麼我做後想......

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