[英]Convert input data to Integer in Swift
First, input data using keyboard: 首先,使用键盘输入数据:
var fh = NSFileHandle.fileHandleWithStandardInput()
println("Please input first number")
let num1 = fh.availableData
println("Please input second number")
let num2 = fh.availableData
After accept the keyboard input, I want to calculate 接受键盘输入后,我想计算
num1+num2
and print out. 并打印出来。 But I don't know how to convert num1, num2 to Integer.
但我不知道如何将num1,num2转换为Integer。
It depends which swift you are using, you can see how to do it for 1.x and 2.0: Get integer value from string in swift 这取决于你使用哪种swift,你可以看到如何为1.x和2.0做: 在swift中从字符串中获取整数值
In 2.0 you can initialize an int with a string: 在2.0中,您可以使用字符串初始化int:
var stringNumber = "1234"
var numberFromString = Int(stringNumber)
打印出来就像print("My result: \\(num1 + num2)")
一样print("My result: \\(num1 + num2)")
The type that NSFileHandle gives you for num1
and num2
is NSData. NSFileHandle为
num1
和num2
提供的类型是NSData。
You can't do math on NSData, you have to first convert the data to numbers. 您无法在NSData上进行数学运算,您必须先将数据转换为数字。
To transform this data into integers, we're doing two steps: first convert the data to an NSString, then convert the string to an Integer. 要将这些数据转换为整数,我们要做两个步骤:首先将数据转换为NSString,然后将字符串转换为Integer。 After that, we can sum the two values.
之后,我们可以将这两个值相加。
We're using the integerValue
method of NSString
: 我们正在使用
NSString
的integerValue
方法:
let fh = NSFileHandle.fileHandleWithStandardInput()
print("Please input first number")
let num1 = fh.availableData
print("Please input second number")
let num2 = fh.availableData
if let numString1 = NSString(data: num1, encoding: NSUTF8StringEncoding),
numString2 = NSString(data: num2, encoding: NSUTF8StringEncoding) {
let val1 = numString1.integerValue
let val2 = numString2.integerValue
print("\(val1) + \(val2) = \(val1 + val2)")
}
Result: 结果:
Please input first number
请输入第一个号码
3333
Please input second number请输入第二个号码
4242
33 + 42 = 7533 + 42 = 75
This is what i did in latest version of Swift: 这是我在最新版Swift中所做的:
` `
class Input2 {
func inputString() -> String {
let keyboard = FileHandle.standardInput
let inputData = keyboard.availableData
return String(data: inputData, encoding: .utf8)!
}
func inputInt() -> Int {
let keyboard = FileHandle.standardInput
let inputData = keyboard.availableData
let str = String(data: inputData, encoding: .utf8)!
let i = Int(str.replacingOccurrences(of: "\n", with: ""))!
return i
}
}
var inp = Input2()
print("Please enter your name")
var name:String = inp.inputString()
print("line: \(name)")
//var i = Int(name.replacingOccurrences(of: "\n", with: ""))!
print("Enter a number:")
var i = inp.inputInt()
print(i)
` `
You can print or store the sum by : 您可以通过以下方式打印或存储总和:
var fh = NSFileHandle.fileHandleWithStandardInput()
print("Please input first number")
let data1 = fh.availableData
let stringvalue1 = NSString(data: data1, encoding:NSUTF8StringEncoding) as! String // getting as string value
let num1 = Int(stringvalue1.stringByReplacingOccurrencesOfString("\n", withString: ""))! // converting string to Int
print("Please input second number")
let data2 = fh.availableData
let stringvalue2 = NSString(data: data2, encoding:NSUTF8StringEncoding) as! String
let num2 = Int(stringvalue2.stringByReplacingOccurrencesOfString("\n", withString: ""))!
let sum = num1 + num2
print("sum is \(sum)")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.