137

だから私はこれを行うことができます:

var stringNumb: NSString = "1357"

var someNumb: CInt = stringNumb.intValue

しかし、私はそれを行う方法を見つけることができませんString。私は次のようなことをしたいと思います:

var stringNumb: String = "1357"

var someNumb: Int = Int(stringNumb)

これも機能しません:

var someNumbAlt: Int = myString.integerValue
4

12 に答える 12

181

Swift 2.0 では、コンストラクターを使用して Integer を初期化できます

var stringNumber = "1234"
var numberFromString = Int(stringNumber)
于 2015-06-12T11:43:54.947 に答える
94

私は使用します:

var stringNumber = "1234"
var numberFromString = stringNumber.toInt()
println(numberFromString)

toInt():

文字列が Int に収まる整数を表す場合、対応する整数を返します。

于 2014-06-03T15:39:47.833 に答える
18

スウィフト 3.0 では

タイプ 1: NSString を文字列に変換する

    let stringNumb:NSString = "1357"
    let someNumb = Int(stringNumb as String) // 1357 as integer

タイプ 2: 文字列が整数のみの場合

    let stringNumb = "1357"
    let someNumb = Int(stringNumb) // 1357 as integer

タイプ 3: String に Float 値がある場合

    let stringNumb = "13.57"
    if let stringToFloat = Float(stringNumb){
        let someNumb = Int(stringToFloat)// 13 as Integer
    }else{
       //do something if the stringNumb not have digit only. (i.e.,) let stringNumb = "13er4"
    }
于 2016-09-23T10:24:12.407 に答える
11

必要なメソッドは、オプションの Int を返すtoInt()ため、少し注意する必要があります。toInt()

let stringNumber = "1234"
let numberFromString = stringNumber.toInt()
// numberFromString is of type Int? with value 1234

let notANumber = "Uh oh"
let wontBeANumber = notANumber.toInt()
// wontBeANumber is of type Int? with value nil
于 2014-06-03T15:42:27.113 に答える
5

のみを使用できる場合NSString

これは、objective-c にかなり似ています。すべてのデータ型がありますが、as NSString追加が必要です

    var x = "400.0" as NSString 

    x.floatValue //string to float
    x.doubleValue // to double
    x.boolValue // to bool
    x.integerValue // to integer
    x.intValue // to int

また、toInt()関数が追加されました。Apple Inc. の「The Swift Programming Language」を参照してください。アイブック。https://itun.es/us/jEUH0.l 49 ページ

x.toInt()
于 2014-06-03T15:40:33.963 に答える
4

私の文字列値は「700.00」だったので、上記の答えは役に立ちませんでした

Swift 2.2ではこれがうまくいきます

let myString = "700.00"
let myInt = (myString as NSString).integerValue

myInt を NSFormatterClass に渡しました

let formatter = NSNumberFormatter()
formatter.numberStyle = .CurrencyStyle
formatter.maximumFractionDigits = 0

let priceValue = formatter.stringFromNumber(myInt!)!

//Now priceValue is ₹ 700

このブログ記事のおかげです。

于 2016-07-29T11:40:07.490 に答える
3

次のように、String から NSString にブリッジし、CInt から Int に変換できます。

var myint: Int = Int(stringNumb.bridgeToObjectiveC().intValue)
于 2014-06-03T15:39:38.227 に答える
1

そのための拡張機能を作成しました。常に を返しますInt。文字列が に収まらない場合はInt、0 が返されます。

extension String {
    func toTypeSafeInt() -> Int {
        if let safeInt = self.toInt() {
            return safeInt
        } else {
            return 0
        }
    }
}
于 2014-08-12T12:06:57.650 に答える
0

シンプルだが汚い方法

// Swift 1.2
if let intValue = "42".toInt() {
    let number1 = NSNumber(integer:intValue)
}
// Swift 2.0
let number2 = Int(stringNumber)

// Using NSNumber
let number3 = NSNumber(float:("42.42" as NSString).floatValue)

拡張方法

これは、ロケールと小数でうまく機能するため、実際には優れています。

extension String {

    var numberValue:NSNumber? {
        let formatter = NSNumberFormatter()
        formatter.numberStyle = .DecimalStyle
        return formatter.numberFromString(self)
    }
}

これで、次のことが簡単にできます。

let someFloat = "42.42".numberValue
let someInt = "42".numberValue
于 2016-07-18T08:32:55.767 に答える
0

8:1 オッズ(*)

var stringNumb: String = "1357"
var someNumb = Int(stringNumb)

また

var stringNumb: String = "1357"
var someNumb:Int? = Int(stringNumb)

Int(String)Int?ではなく、オプションの を返しますInt


安全な使用: 明示的にアンラップしないでください

let unwrapped:Int = Int(stringNumb) ?? 0

また

if let stringNumb:Int = stringNumb { ... }

(*)実際に機能しなかった理由に対処した回答var someNumb: Int = Int(stringNumb)はありませんでした。

于 2016-02-03T21:38:51.413 に答える
0

より一般的な解決策は拡張機能になる可能性があります

extension String {
    var toFloat:Float {
        return Float(self.bridgeToObjectiveC().floatValue)
    }
    var toDouble:Double {
        ....
    }
    ....
}

これはたとえば、 toFloat によって迅速なネイティブ文字列オブジェクトを拡張します

于 2014-06-06T13:01:55.363 に答える
0

Swift 2.0 で String を Int に変換します。

var str:NSString = Data as! NSString
var cont:Int = str.integerValue

使用する.intergerValue or intValue for Int32

于 2015-12-15T19:12:06.267 に答える