【问题标题】:Trying to convert input string to integer in Swift尝试在 Swift 中将输入字符串转换为整数
【发布时间】:2016-03-10 01:13:56
【问题描述】:

我正在尝试编写一个程序,该程序从用户输入一个数字并将其存储到一个字符串中,然后我试图将该字符串转换为整数以供进一步使用。每当我转换它时,它会为整数值显示 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))

【问题讨论】:

  • 如果你输入的不是数字怎么办?或者你只是假设输入是数字
  • user 末尾包含换行符,这就是您转换为 Int 失败的原因。
  • 如何去掉换行符
  • 将每个字符复制到一个新字符串中,直到找到换行符,然后停止复制。返回新字符串。
  • 我该怎么做呢,我今天开始看起来很快,所以在某个角色出现之前我不知道应该如何复制。

标签: string swift int


【解决方案1】:

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?

【讨论】:

    【解决方案2】:

    在四处寻找和尝试不同的事情之后,我能够完全按照自己的意愿去做......

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

    【讨论】:

      猜你喜欢
      • 2017-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-17
      • 2012-11-04
      相关资源
      最近更新 更多