Я пытаюсь работать, как бросить 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функцию, показанную в ответе ниже.