将 Int
转换为 String
:
let x : Int = 42
var myString = String(x)
反过来 - 将 String
转换为 Int
:
let myString : String = "42"
let x: Int? = myString.toInt()
if (x != nil) {
// Successfully converted String to Int
}
或者,如果您使用的是 Swift 2 或 3:
let x: Int? = Int(myString)
检查以下答案:
let x : Int = 45
var stringValue = "\(x)"
print(stringValue)
String
已经有一个接受 Int
的构造函数时,这是一个丑陋且不必要的解决方法
String
有一个接受 Int
的构造函数时,不需要使用字符串插值。它更加清晰和简洁。
这里有4种方法:
var x = 34
var s = String(x)
var ss = "\(x)"
var sss = toString(x)
var ssss = x.description
我可以想象有些人会对ss有问题。但是,如果您要构建一个包含其他内容的字符串,那为什么不呢。
var ss = "\(x)"
示例正是他们建议将双精度数转换为字符串的方式。我认为这很容易而且很棒。
String(describing:)
不得用于除调试之外的任何其他用途。它不是普通的 String 初始值设定项。
在 Swift 3.0 中:
var value: Int = 10
var string = String(describing: value)
String(describing:)
不得用于除调试之外的任何其他用途。它不是普通的 String 初始值设定项。
斯威夫特 4:
let x:Int = 45
let str:String = String(describing: x)
Developer.Apple.com > String > init(describing:)
String(describing:) 初始化程序是将任何类型的实例转换为字符串的首选方法。
https://i.stack.imgur.com/bxxiu.png
String(describing:)
不得用于除调试之外的任何其他用途。它不是普通的 String 初始值设定项。
describing
方法用于...描述其内容。它给出了描述。有时它与转换相同,有时不是。给 describing
一个可选项,您会看到结果...这不是转换。有一种简单的专用转换方法:使用普通的 String 初始化程序,如其他答案中所述。阅读您链接到的完整页面:查看此方法搜索 descriptions 使用不同的方式,如果您期望准确的转换,其中一些会给出错误的结果。.
为了完整起见,您还可以使用:
let x = 10.description
或任何其他支持描述的值。
斯威夫特 4:
试图在没有 Optional() 字的标签中显示值。
这里 x 是一个 Int 值。
let str:String = String(x ?? 0)
String(describing:)
不应该用于除调试以外的任何事情。它不是普通的 String 初始值设定项。
String()
初始化程序。但不要给它一个可选的,先解包。或者,就像在您的示例中一样,使用 ??
。像这样:let str = String(x ?? 0)
在 swift 3.0 中,我们可以将 Int
转换为 String
并将 String
转换为 Int
//convert Integer to String in Swift 3.0
let theIntegerValue :Int = 123 // this can be var also
let theStringValue :String = String(theIntegerValue)
//convert String to Integere in Swift 3.0
let stringValue : String = "123"
let integerValue : Int = Int(stringValue)!
integerValue
的类型是 Int
。那么它不能有一个 nil 值。所以编译器告诉你解开它。如果您想避免这种情况,请像 let integerValue = Int(stringValue)
一样使用它。那么你就不会遇到问题了。这么晚才回复很抱歉。
为了节省您将来的时间和麻烦,您可以进行 Int 扩展。通常我会创建一个共享代码文件,在其中放置扩展、枚举和其他有趣的东西。这是扩展代码的样子:
extension Int
{
func toString() -> String
{
var myString = String(self)
return myString
}
}
然后稍后当您想将 int 转换为字符串时,您可以执行以下操作:
var myNumber = 0
var myNumberAsString = myNumber.toString()
toInt
还是 toInt()
。
myNumber.description
。无需任何扩展。
无论出于何种原因,接受的答案对我不起作用。我采用了这种方法:
var myInt:Int = 10
var myString:String = toString(myInt)
多种方法可以做到这一点:
var str1:String="\(23)"
var str2:String=String(format:"%d",234)
斯威夫特 2:
var num1 = 4
var numString = "56"
var sum2 = String(num1) + numString
var sum3 = Int(numString)
let intAsString = 45.description // "45"
let stringAsInt = Int("45") // 45
斯威夫特字符串性能
关于 iOS 14 在 iPhone 7(真实设备)上的性能UI Testing Bundle
let i = 0
lt result1 = String(i) //0.56s 5890kB
lt result2 = "\(i)" //0.624s 5900kB
lt result3 = i.description //0.758s 5890kB
import XCTest
class ConvertIntToStringTests: XCTestCase {
let count = 1_000_000
func measureFunction(_ block: () -> Void) {
let metrics: [XCTMetric] = [
XCTClockMetric(),
XCTMemoryMetric()
]
let measureOptions = XCTMeasureOptions.default
measureOptions.iterationCount = 5
measure(metrics: metrics, options: measureOptions) {
block()
}
}
func testIntToStringConstructor() {
var result = ""
measureFunction {
for i in 0...count {
result += String(i)
}
}
}
func testIntToStringInterpolation() {
var result = ""
measureFunction {
for i in 0...count {
result += "\(i)"
}
}
}
func testIntToStringDescription() {
var result = ""
measureFunction {
for i in 0...count {
result += i.description
}
}
}
}
我正在使用这种简单的方法
字符串到 Int:
var a = Int()
var string1 = String("1")
a = string1.toInt()
从 Int 到 String:
var a = Int()
a = 1
var string1 = String()
string1= "\(a)"
将 Unicode Int 转换为字符串
对于那些想要将 Int 转换为 Unicode 字符串的人,您可以执行以下操作:
let myInteger: Int = 97
// convert Int to a valid UnicodeScalar
guard let myUnicodeScalar = UnicodeScalar(myInteger) else {
return ""
}
// convert UnicodeScalar to String
let myString = String(myUnicodeScalar)
// results
print(myString) // a
或者:
let myInteger: Int = 97
if let myUnicodeScalar = UnicodeScalar(myInteger) {
let myString = String(myUnicodeScalar)
}
String
初始化程序可以采用 UnicodeScalar
。
我更喜欢使用 String Interpolation
let x = 45
let string = "\(x)"
每个对象都有一些字符串表示。这使事情变得更简单。例如,如果您需要创建一些具有多个值的 String
。您也可以在其中进行任何数学运算或使用某些条件
let text = "\(count) \(count > 1 ? "items" : "item") in the cart. Sum: $\(sum + shippingPrice)"
exampleLabel.text = String(yourInt)
将 String 转换为 Int
var numberA = Int("10")
Print(numberA) // It will print 10
将 Int 转换为 String
var numberA = 10
第一种方式)
print("numberA is \(numberA)") // It will print 10
第二种方式)
var strSomeNumber = String(numberA)
或者
var strSomeNumber = "\(numberA)"
let a =123456888
var str = String(a)
或者
var str = a as! String
在 swift 3.0 中,您可以将整数更改为字符串,如下所示
let a:String = String(stringInterpolationSegment: 15)
另一种方法是
let number: Int = 15
let _numberInStringFormate: String = String(number)
//或任何整数代替15
如果您喜欢 swift 扩展,可以添加以下代码
extension Int
{
var string:String {
get {
return String(self)
}
}
}
然后,你可以通过你刚刚添加的方法获取字符串
var x = 1234
var s = x.string
let Str = "12"
let num: Int = 0
num = Int (str)
toString
函数,如下面的答案所示。Int
至少在 Xcode 6.2 编辑中似乎没有toString()
方法:我看到有一个全局toString
方法(not { 4}),有人知道使用String()
构造函数的优势吗?String(Int?)
写入“Optional(Int)”,这可能不是您的意思。改用Int?.description
String(describing: x)