1. ホーム
  2. ios

[解決済み] SwiftでStringを配列に分割する?

2022-03-23 07:05:05

質問

ここに文字列があるとします。

var fullName: String = "First Last"

文字列を空白で分割し、その値をそれぞれの変数に代入したい。

var fullNameArr = // something like: fullName.explode(" ") 

var firstName: String = fullNameArr[0]
var lastName: String? = fullnameArr[1]

また、ユーザーには姓がない場合もあります。

解決方法は?

Swift の方法は、グローバルな split 関数のようになります。

var fullName = "First Last"
var fullNameArr = split(fullName) {$0 == " "}
var firstName: String = fullNameArr[0]
var lastName: String? = fullNameArr.count > 1 ? fullNameArr[1] : nil

スウィフト2

Swift 2 では、内部の CharacterView 型の導入により、split の使用は少し複雑になります。これは、String がもはや SequenceType または CollectionType プロトコルを採用しないことを意味し、代わりに .characters プロパティを使用して、String インスタンスの CharacterView 型表現にアクセスします。(注:CharacterViewはSequenceTypeとCollectionTypeのプロトコルを採用しています)。

let fullName = "First Last"
let fullNameArr = fullName.characters.split{$0 == " "}.map(String.init)
// or simply:
// let fullNameArr = fullName.characters.split{" "}.map(String.init)

fullNameArr[0] // First
fullNameArr[1] // Last