非常に大きな数のテキストファイルから行を読み込んでいます。文字列にはtoIntメソッドがありますが、文字列を、大きな数を処理できるInt64にどのように変換しますか?
ToInt64メソッドやtoLongなどが表示されません。方法があるはずですが、まだ検索しても何も見つかりません。
あるいは、文字列内の数字を数字ごと(または数字のグループごと)に読み取って、適切な10の係数でそれらを加算することもできますが、それはやり過ぎのようです。あるいは、適切な方法は、データをバイナリ形式で読み取り、そのように変換することですか?
ありがとう
Swift 2.1.1以降、単純にInt64
with String
let number: Int64? = Int64("42")
NSStringを使用してもかまわない場合は、これを行うことができます
let str = "\(LLONG_MAX)"
let strAsNSString = str as NSString
let value = strAsNSString.longLongValue
ToInt()とは異なり、文字列が有効な数値でない場合、longLongValueは0を返しますが、その場合、toInt()はnilを返します。
import Darwin
let strBase10 = "9223372036854775807"
let i64FromBase10 = strtoll(strBase10, nil, 10)
let strBase16 = "0xFFFFFFFFFFFFFFFF"
let i64FromBase16 = strtoll(strBase16, nil, 16)
strtollはSTRingTOLongLongを意味します
import Darwin
let str = ...
let i = strtoll(str, nil, 10)