...
let s = "092030" as NSString
let pattern = "\\d\\d"
let reg = try! NSRegularExpression(pattern: pattern, options: [])
let matches = reg.matchesInString(s as String, options: [], range: NSMakeRange(0, s.length))
var result = matches.map {s.substringWithRange($0.range)}
while result.count < 4 {
result.insert("0", atIndex: 0)
}
// result is: ["0", "09", "20", "30"]
は、私はまた、あなたの出力要件にほとんど不明確です。一方では、4つの「個別の整数」が必要だと言うでしょう。しかし、 "09"は整数ではありません。これは整数を表す文字列です。だから、実際には弦がほしいと思うようです。その場合は、result
が望ましい結果になります。ない場合は、一歩必要があります。
let result2 = result.map{Int($0)!}
// result2 is: [0, 9, 20, 30]
なぜ「私は、ビルドイン機能を探してる」を使用することができますか?あなたはコードを書いたくありませんか? "しかし、私は正規表現のようなものを使うのが好きですが、あなたがそれを行うことができたとしても、まだコードを書くでしょう。あなたの「特別な機能なし」の注意点は何ですか? – matt
なぜ正規表現を使用しますか?いずれの場合でも、正規表現かどうかにかかわらず、そのコードはそれ自身の関数に属します。 – Alexander
私は、このケースでは特別な実装ではなく、柔軟な定義を使用したいと考えています。私は文字列の各位置を段階的にチェックする機能を持っています。しかし、マットのソリューションは私にとってよりエレガントに見えます。 – Peter71