どうも、ちょげ(@chogetarou)です。
Swiftで文字列を文字数で分割する方法を紹介します。
方法

文字列を文字数で分割するには、関数を自作します。
まず、文字数を引数に持ち、戻り値を文字列の配列とする関数を追加します。
extension String {
func split(by length: Int) -> [String] {
}
}
次に、関数に文字列を文字数ごとに切り取って、それを配列に追加し、配列を戻り値として返すコードを追加します
extension String {
func split(by length: Int) -> [String] {
var startIndex = self.startIndex
var results = [Substring]()
while startIndex < self.endIndex {
let endIndex = self.index(startIndex, offsetBy: length, limitedBy: self.endIndex) ?? self.endIndex
results.append(self[startIndex..<endIndex])
startIndex = endIndex
}
return results.map { String($0) }
}
}
最後に、自作した関数を呼び出します。
str.split(by: length)
使用例
以下は、使用例です。
extension String {
func split(by length: Int) -> [String] {
var startIndex = self.startIndex
var results = [Substring]()
while startIndex < self.endIndex {
let endIndex = self.index(startIndex, offsetBy: length, limitedBy: self.endIndex) ?? self.endIndex
results.append(self[startIndex..<endIndex])
startIndex = endIndex
}
return results.map { String($0) }
}
}
let str = "ABCDEFGHIJKLMN"
//3文字ごとに分割
print(str.split(by: 3)) //["ABC", "DEF", "GHI", "JKL", "MN"]
コメント