ฉันพยายามที่จะหาวิธีที่จะใช้Int
เป็นString
ในสวิฟท์
ฉันหาวิธีแก้ปัญหาโดยใช้NSNumber
แต่ฉันชอบคิดออกว่าจะทำทุกอย่างใน Swift อย่างไร
let x : Int = 45
let xNSNumber = x as NSNumber
let xString : String = xNSNumber.stringValue
ฉันพยายามที่จะหาวิธีที่จะใช้Int
เป็นString
ในสวิฟท์
ฉันหาวิธีแก้ปัญหาโดยใช้NSNumber
แต่ฉันชอบคิดออกว่าจะทำทุกอย่างใน Swift อย่างไร
let x : Int = 45
let xNSNumber = x as NSNumber
let xString : String = xNSNumber.stringValue
คำตอบ:
แปลง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)
Int
ไม่ปรากฏว่ามีtoString()
วิธีการอย่างน้อยไม่ใช่ในการแก้ไข Xcode 6.2: ฉันเห็นว่ามีtoString
วิธีการทั่วโลก( ไม่ใช่ Int.toString()
) ทุกคนรู้ถึงประโยชน์จากการใช้String()
Constructor หรือไม่
String(Int?)
เขียนว่า"ตัวเลือก (Int)" อย่างน้อยใน Swift 2 ที่อาจไม่เป็นอย่างที่คุณต้องการ ใช้แทนInt?.description
String(describing: x)
ตรวจสอบคำตอบด้านล่าง:
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
ฉันสามารถจินตนาการได้ว่าบางคนจะมีปัญหากับเอสเอส แต่ถ้าคุณต้องการสร้างสตริงที่มีเนื้อหาอื่นอยู่ทำไมไม่ทำเช่นนั้น
var ss = "\(x)"
ตัวอย่างของคุณคือวิธีที่พวกเขาแนะนำให้แปลงเป็น double เป็นสตริง ซึ่งฉันคิดว่าเป็นเรื่องง่ายและยอดเยี่ยม
String(describing:)
ไม่ควรใช้เพื่อการอื่นใดนอกจากการดีบัก ไม่ใช่ตัวเริ่มต้นของสตริงปกติ
ใน Swift 3.0 :
var value: Int = 10
var string = String(describing: value)
String(describing:)
ไม่ควรใช้เพื่อการอื่นใดนอกจากการดีบัก ไม่ใช่ตัวเริ่มต้นของสตริงปกติ
สวิฟท์ 4 :
let x:Int = 45
let str:String = String(describing: x)
Developer.Apple.com> String> init (อธิบาย :)
String (อธิบาย :) initializer เป็นวิธีที่ต้องการแปลงอินสแตนซ์ทุกประเภทเป็นสตริง
String(describing:)
ไม่ควรใช้เพื่อการอื่นใดนอกจากการดีบัก ไม่ใช่ตัวเริ่มต้นของสตริงปกติ
describing
วิธีการอยู่ที่นี่ ... อธิบายเนื้อหา มันให้คำอธิบาย บางครั้งก็เป็นเช่นเดียวกับแปลงที่บางครั้งไม่ ให้ทางเลือกเพื่อdescribing
และคุณจะเห็นผลลัพธ์ ... มันจะไม่เป็นการแปลง มีวิธีง่ายๆในการแปลงโดยใช้ตัวเริ่มต้นสตริงตามที่อธิบายไว้ในคำตอบอื่น ๆ อ่านหน้าที่สมบูรณ์แบบที่คุณเชื่อมโยงไปดูว่าวิธีการนี้การค้นหาคำอธิบายโดยใช้วิธีการที่แตกต่างกันบางแห่งซึ่งจะให้ผลลัพธ์ที่ผิดถ้าคุณคาดหวังว่าการแปลงที่ถูกต้อง ..
เพื่อความสมบูรณ์คุณยังสามารถใช้:
let x = 10.description
หรือค่าอื่น ๆ ที่รองรับคำอธิบาย
สวิฟท์ 4:
กำลังพยายามแสดงค่าในป้ายกำกับโดยไม่มีตัวเลือก ()คำ
นี่คือค่า x โดยใช้
let str:String = String(x ?? 0)
String(describing:)
ควรไม่ใช้สิ่งอื่นนอกเหนือจากการดีบัก ไม่ใช่ตัวเริ่มต้นของสตริงปกติ
String()
เริ่มต้นปกติ แต่อย่าให้มันเป็นตัวเลือกไม่ต้องแกะก่อน ??
หรือชอบในตัวอย่างของการใช้งาน เช่นนี้:let str = String(x ?? 0)
เพื่อเป็นการประหยัดเวลาและความยุ่งยากในอนาคตคุณสามารถสร้างส่วนเสริม Int ได้ โดยทั่วไปฉันสร้างไฟล์รหัสที่ใช้ร่วมกันซึ่งฉันใส่ส่วนขยาย, enums และสิ่งที่สนุกสนานอื่น ๆ นี่คือลักษณะของรหัสส่วนขยาย:
extension Int
{
func toString() -> String
{
var myString = String(self)
return myString
}
}
จากนั้นเมื่อคุณต้องการแปลง int เป็นสตริงคุณสามารถทำสิ่งต่อไปนี้
var myNumber = 0
var myNumberAsString = myNumber.toString()
toInt
toInt()
myNumber.description
การช่วยตัวเองบางเวลาและความยุ่งยากเพียงแค่ใช้ ไม่จำเป็นต้องมีส่วนขยายใด ๆ
ในสวิฟท์ 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
อะไร จากนั้นไม่สามารถมีค่าศูนย์ได้ คอมไพเลอร์บอกให้คุณแกะมัน let integerValue = Int(stringValue)
ถ้าคุณต้องการหลีกเลี่ยงปัญหานี้ใช้มันเหมือน จากนั้นคุณจะไม่ได้รับปัญหา ขออภัยสำหรับการตอบกลับปลาย.
ไม่ว่าด้วยเหตุผลใดคำตอบที่ยอมรับไม่ได้ผลสำหรับฉัน ฉันใช้วิธีนี้:
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)
เอี่ยมใช้วิธีการง่าย ๆ นี้
สตริงเป็น Int:
var a = Int()
var string1 = String("1")
a = string1.toInt()
และจาก Int ถึง String:
var a = Int()
a = 1
var string1 = String()
string1= "\(a)"
สำหรับผู้ที่ต้องการแปลง 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
initializer UnicodeScalar
สามารถใช้
exampleLabel.text = String(yourInt)
ในการแปลง String เป็น Int
var numberA = Int("10")
Print(numberA) // It will print 10
ในการแปลง Int เป็น String
var numberA = 10
วิธีที่ 1)
print("numberA is \(numberA)") // It will print 10
วิธีที่ 2)
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
ฉันชอบใช้การแก้ไขสตริง
let x = 45
let string = "\(x)"
แต่ละวัตถุมีการแทนค่าสตริง สิ่งนี้ทำให้ง่ายขึ้น ตัวอย่างเช่นหากคุณต้องการสร้างบางอย่างที่String
มีหลายค่า คุณยังสามารถทำคณิตศาสตร์ใด ๆ ในนั้นหรือใช้เงื่อนไขบางอย่าง
let text = "\(count) \(count > 1 ? "items" : "item") in the cart. Sum: $\(sum + shippingPrice)"
หากคุณชอบส่วนขยายที่รวดเร็วคุณสามารถเพิ่มรหัสต่อไปนี้
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)
let intAsString = 45.description // "45"
let stringAsInt = Int("45") // 45
toString
ฟังก์ชั่นที่แสดงในคำตอบด้านล่าง