Я пытаюсь работать, как бросить Int
в String
в Swift.
Я придумываю обходной путь, используя, NSNumber
но я бы хотел выяснить, как все это сделать в Swift.
let x : Int = 45
let xNSNumber = x as NSNumber
let xString : String = xNSNumber.stringValue
Я пытаюсь работать, как бросить Int
в String
в Swift.
Я придумываю обходной путь, используя, 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()
конструктора?
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)"
пример - именно то, как они советовали преобразовать двойное число в строку. Который я думал, было легко и здорово.
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 (description :)) является предпочтительным способом преобразования экземпляра любого типа в строку.
String(describing:)
никогда не должен использоваться для чего-то еще, кроме отладки. Это не обычный инициализатор строки.
describing
Метод здесь , чтобы ... описать его содержание. Это дает описание. Иногда это так же, как преобразование, иногда нет . Дайте необязательно, describing
и вы увидите результат ... Это не будет преобразование. Существует простой, выделенный способ преобразования: использование обычного инициализатора String, как объяснено в других ответах. Прочитайте полную страницу, на которую вы ссылаетесь: увидите, что этот метод ищет описания различными способами, некоторые из которых могут дать неправильные результаты, если вы ожидаете точного преобразования ..
Просто для полноты вы также можете использовать:
let x = 10.description
или любое другое значение, которое поддерживает описание.
Свифт 4:
Попытка показать значение в метке без слова Optional () .
здесь x - значение Int, использующее.
let str:String = String(x ?? 0)
String(describing:)
никогда не следует использовать для чего-то еще, кроме отладки. Это не обычный инициализатор строки.
String()
инициализатор. Но не давайте это по желанию, сначала разверните. Или, как в вашем примере, используйте ??
. Как это:let str = String(x ?? 0)
Чтобы сэкономить время и нервы в будущем, вы можете сделать расширение Int. Обычно я создаю файл общего кода, в который я помещаю расширения, перечисления и другие забавные вещи. Вот как выглядит код расширения:
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 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
Инициализатор может занять UnicodeScalar
.
Чтобы преобразовать строку в Int
var numberA = Int("10")
Print(numberA) // It will print 10
Чтобы преобразовать Int в строку
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
Я предпочитаю использовать String Interpolation
let x = 45
let string = "\(x)"
Каждый объект имеет некоторое строковое представление. Это делает вещи проще. Например, если вам нужно создать несколько String
с несколькими значениями. Вы также можете сделать любую математику или использовать некоторые условия
let text = "\(count) \(count > 1 ? "items" : "item") in the cart. Sum: $\(sum + shippingPrice)"
let Str = "12"
let num: Int = 0
num = Int (str)
toString
функцию, показанную в ответе ниже.