私はキャストする方法を考え出そうとしています 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()
ですが、コンストラクタを使用するよりも利点は誰でも知っていますか?
String(Int?)
少なくともSwift 2では「Optional(Int)」と書いていることに注意してください。これは、意図したとおりではありませんでした。代わりに使用してください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
ssで問題が発生する人もいると思います。しかし、他のコンテンツを含む文字列を作成することを検討しているのであれば、それはなぜでしょうか。
var ss = "\(x)"
例は、彼らがdoubleを文字列に変換することを忠告した方法です。簡単で素晴らしいと思いました。
String(describing:)
デバッグ以外には使用しないでください。通常の文字列初期化子ではありません。
Swift 3.0の場合:
var value: Int = 10
var string = String(describing: value)
String(describing:)
デバッグ以外には使用しないでください。通常の文字列初期化子ではありません。
Swift 4:
let x:Int = 45
let str:String = String(describing: x)
Developer.Apple.com>文字列> init(説明:)
String(describing :)イニシャライザは、任意のタイプのインスタンスを文字列に変換するための推奨される方法です。
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
。拡張機能は必要ありません。
で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を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
。
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)"
toString
機能している間、以下の回答に示す関数を使用します。